我正试图从另一个活动中获取一个变量intger
我的代码:
------- Activity --------
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent intent = new Intent(Question.this, Answer.class);
intent.putExtra("id", position);
startActivityForResult(intent, position);
}
protected void onActivityResult(int requestCode, int resultCode, Intent i) {
int pos = ------- "I'm trying to get the position in this activity or pos in the other activity." -------
if(pref.getBoolean("answered"+pos, false)){
------ Do Something --------
}
}
这是另一项活动,我正试图从第一项活动或该活动的位置获得位置。
Intent intent = getIntent();
pos = (int) intent.getExtras().getInt("id");
我正在尝试在onActivityResult
中获取pos中的int有可能吗?
更新
我通过添加
修复了它onActivityResult(position, position, intent);
答案 0 :(得分:0)
试试这个:
在第一个活动中
String pos = String.valueOf(position);
intent.putExtra("id", pos);
在非活动
中String id= intent.getStringExtra("id");
int pos= Integer.parseInt(id);
希望这可以帮到你!
答案 1 :(得分:0)
有一种方法用于调用getIntExtra()
来接收来自意图的int
值。
您应该使用它而不是使用getStringExtra()
...
因为getStringExtra()
不会将** int
转换为 String
** ,而您的变量将为null ... < / p>
所以你应该尝试下面代码......
Intent intent = getIntent();
if(intent.getExtras() != null)
{
pos = (int) intent.getIntExtra("id",0); // zero( 0 ) is default value...
}
修改强>
如果您在 OnActivityResult()
中获得了价值
你应该试试......
protected void onActivityResult(int requestCode, int resultCode, Intent i) {
i = i.getData();
int pos = i.getIntExtra("id",0);
}
}
答案 2 :(得分:0)
getIntent()将为您提供整个活动的意图。但在你的情况下,你需要来自intent的值,它是onActivityResult方法中的一个参数。
所以
pos = (int) i.getExtras().getInt("id");
因为意图变量是我的方法
protected void onActivityResult(int requestCode, int resultCode, Intent i)