意图不正确传递数据

时间:2012-10-27 14:10:11

标签: android android-intent

我是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

先谢谢, 射线

1 个答案:

答案 0 :(得分:0)

为什么不使用传递long值而不是bundle的Intent.putExtra?

然后你就做了

intent.putExtra("RowId", id);

并检索

long incomingID = getLongExtra("RowId", -1);

顺便说一下,尝试在两段代码中处理数据