我是Android开发的新手,面临着意图的一些问题。 我有一个显示在屏幕上的项目列表,并希望在点击列表中的任何项目时调用不同的活动。
我使用以下代码在点击列表项目时调用其他活动 -
@Override
protected void onListItemClick(ListView lv, View view, int position, long id){
super.onListItemClick(lv, view, position, id);
//code to call activity to edit the task
Intent intent = new Intent(this, ReminderModificationActivity.class);
intent.putExtra("RowId", id);
Log.i(TAG, "row clickd --> " + id);
startActivityForResult(intent, ACTIVITY_EDIT);
}
在上面的代码中,我得到了单击为1,2或3的列表项的正确id。对于“ReminderModificationActivity”,我在onCreate()函数中有这段代码 -
Log.i(TAG, "getIntent --> " + getIntent().getExtras().getInt("RowId") );
//code to check what row id have been passed
if(getIntent() != null) {
Bundle extras = getIntent().getExtras();
int mRowId = extras != null ? extras.getInt("RowId") : -1;
// Do stuff with the row id here
if(mRowId != -1){
//code if RowId valid
}
}
在Log.i中收到的值始终为0.任何人都可以帮我解决我在这里缺少的内容吗?请详细说明,因为我对这个平台完全陌生。
捕获意图时 ans - int 。
先谢谢, 射线
答案 0 :(得分:0)
为什么不使用传递long值而不是bundle的Intent.putExtra?
然后你就做了
intent.putExtra("RowId", id);
并检索
long incomingID = getLongExtra("RowId", -1);
顺便说一下,尝试在两段代码中处理数据