getIntExtra始终返回默认值

ore*_*man 17 android

我试图使用intent在活动之间传递一个整数.源活动使调用info.id成为ListView中的选定项.

Intent intent = new Intent(myActivity.this, newClass.class); 
intent.putExtra("selectedItem", info.id); 
this.startActivity(intent); 
Run Code Online (Sandbox Code Playgroud)

目标活动使用getIntent然后调用来检索intent

int iSelectedItem = intent.getIntExtra("selectedItem", -1); 
Run Code Online (Sandbox Code Playgroud)

iSelectedItem始终为-1而不是传递给putExtra的值.有人可以告诉我我做错了什么或者我是否误解了意图的使用?

小智 22

问题是info.id将是一个'long'而不是转换为'int'.尝试

long iSelectedItem = intent.getLongExtra("selectedItem", -1)
Run Code Online (Sandbox Code Playgroud)


Vik*_*kas 12

我找不到putIntExtra()方法.所以我最终得到了以下内容:

intent.putExtra("jobId", 1);
Run Code Online (Sandbox Code Playgroud)

Integer.parseInt(getIntent().getExtras().get("jobId").ToString());
Run Code Online (Sandbox Code Playgroud)

使用try和catch来处理异常.

UPDATE

后来我发现我将jobId作为putExtra()方法中的字符串传递,因此getIntExtra()总是返回默认值.

所以@Grant是正确的.您必须putExtra()方法中传递Integer值才能使用getIntExtra()方法.