我遇到了通过Intent从一个活动向另一个活动发送和接收int类型的问题;
我发送的是onActivityResult()函数,该函数放在接收活动中。
代码:
发送活动:
Intent ba=new Intent();
MyPoints = fgv.getPoints();
int MP=(int)MyPoints;
Log.i("Problem","MyPoints MP = "+MP);
ba.putExtra("FocusScore",MP);
Log.i("Problem","MyPoints = "+MP);
setResult(RESULT_OK,ba);
finish();
接收活动:
//在onClick上移动另一个类
Intent goFocus = new Intent(Games.this,FocusGame.class);
startActivityForResult(goFocus,1);
//在onActivityResult函数
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK)
{
switch (requestCode) {
case 1: {
//Coming back from Focus-Game
//Problem:!!
int sss= getIntent().getIntExtra("FocusScore", -1);
Log.i("Problem","sss = "+sss);
}
break;
default :
break;
}
}
代码的结果给出了一个日志,其中sss = -1。这意味着
getIntent()getIntExtra();
始终为空。
MP的日志工作正常。
希望你能在这里帮助我。
- 提前致谢, 参见Yaniv。
答案 0 :(得分:2)
使用data
而不是getIntent()
if (data != null) {
//int sss= getIntent().getIntExtra("FocusScore", -1);
Bundle extras = data.getExtras();
int sss = extras.getInt("FocusScore");
}
或只是
if (data != null) {
//int sss= getIntent().getIntExtra("FocusScore", -1);
int sss= data.getIntExtra("FocusScore", -1);
}
答案 1 :(得分:1)
问题是您使用的是getIntent()
,而不是data
int sss= getIntent().getIntExtra("FocusScore", -1);
应该是
int sss= data.getIntExtra("FocusScore", -1);
请记住getIntent()
返回用于创建调用Activity的意图,而不是您用于启动第二个活动的意图。