如何创建这个意图putExtra?

时间:2011-07-16 15:54:14

标签: android android-intent

我尝试通过数据库中的id的id来设置警报。这是我设置inent额外的代码,但它在putExtra上给了我一个错误。

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

这是我的Cursor从我的数据库中获取Id。

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

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

2 个答案:

答案 0 :(得分:2)

putExtra()将名称(字符串)和实际值作为输入。

我怀疑helper.getById(id) i.putExtra(helper.getById(id), (long)taskId);返回一个字符串。

检查一下。

public Intent putExtra (String name, Bundle value)

参数:

  • name - >附加数据的名称,包前缀&
  • value - > Bundle数据值。

返回:

  • 返回相同的Intent对象,用于将多个调用链接到单个语句中。

检查此链接

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

希望我能够提供帮助。

答案 1 :(得分:1)

您不能将光标放在意图中。您应该读取游标并创建一个您可以使用意图传递的数据类型。

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

这也没有意义。我假设你的光标是实际数据?在这种情况下,helper.getById()应该是第二个参数,taskId应该是第一个参数。