2011-07-16 7 views
0

私は、データベースの行IDでアラームを設定しようとしています。ここに私のコードは、余分なinentを設定するが、それは私にputExtraでエラーを与える。このインテントの作成方法putExtra?

public void setReminder(long taskId, Calendar when){ 
    Intent i = new Intent(mContext, OnAlarmReceiver.class); 
    i.putExtra(helper.getById(id), (long)taskId); 
} 

私のデータベースからIDを取得しているカーソルです。

} 
public Cursor getById(String id){ 
    String [] args = {id}; 

    return(getReadableDatabase() 
     .rawQuery("SELECT _id, title, descrip, taskdatetime, type FROM tasks WHERE _id = ?", args)); 
     } 
+0

logcatのエラーは何ですか? – Suchi

答えて

1

カーソルをインテントに配置することはできません。インテントを使用して渡すことができる独自のデータ型を作成してください。

i.putExtra(helper.getById(id), (long)taskId); 

これは意味をなさない。あなたのカーソルは実際のデータだと思いますか?その場合、helper.getById()は2番目のパラメータになり、taskIdは最初のパラメータになります。

2

putExtra()は、名前(文字列)と実際の値を入力として受け取ります。

helper.getById(id) in i.putExtra(helper.getById(id), (long)taskId);は文字列を返します。

を確認してください。

public Intent putExtra (String name, Bundle value) 

パラメータ:

  • name - 余分なデータの>名前、パッケージの接頭辞&
  • valueと - >バンドルデータ値。

戻り値:

  • 単一のステートメントに複数の呼び出しを連鎖するために、同じインテントオブジェクトを返します。

チェックこのリンク

http://developer.android.com/reference/android/content/Intent.html#putExtra%28java.lang.String,%20android.os.Bundle%29

私は助けることができたと思います。

関連する問題