0

我是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同时捕获意图。

提前致谢, 雷

4

1 回答 1

0

你为什么不使用 Intent.putExtra 传递一个长值而不是一个包?

然后你就做一个

intent.putExtra("RowId", id);

并检索

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

顺便说一句,尝试在两段代码中将数据处理得一样长

于 2012-10-27T14:19:05.197 回答