2011-07-16 55 views
0

我嘗試通過數據庫中的行ID來設置警報。這裏是我設置inent extra的代碼,但是它在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()應該是第二個參數,taskId是第一個參數。

2

putExtra()將名稱(字符串)和實際值作爲輸入。

我懷疑helper.getById(id)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

希望我能幫助。