我正在开发一款包含3个活动的应用。活动3从2开始,2从1打开。我想获得用户在活动3中输入的两个数字,并在活动2中处理它们。
这是我目前在活动3中使用的代码,用于捆绑我的号码以返回到#2:
@Override
protected void onPause(){
super.onPause();
Bundle bundle = new Bundle();
bundle.putInt("param1", num1);
bundle.putInt("param2", num2);
Intent i = new Intent(this, Activity2.class);
i.putExtras(bundle);
setResult(ACTIVITY_END, i);
finish();
}
然后在活动#2中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Bundle bundle = this.getIntent().getExtras();
int num1 = bundle.getInt("param1"));
int num2 = bundle.getInt("param2");
//do something with ints
}
但是,无论从#3发送到#2的数字是多少,num1和num2始终为0.
有什么想法吗?
非常感谢!
答案 0 :(得分:3)
试试这个用户, @override
protected void onPause(){
super.onPause();
Bundle bundle = new Bundle();
bundle.putInt("param1", num1);
bundle.putInt("param2", num2);
Intent i = new Intent(this, Activity2.class);
i.putExtra("my_bundle", bundle);
setResult(ACTIVITY_END, i);
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Bundle bundle = data.getBundleExtra("my_bundle");
int num1 = bundle.getInt("param1"));
int num2 = bundle.getInt("param2");
//do something with ints
}
答案 1 :(得分:2)
你应该将params直接放在意图
中i.putExtra("param1", num1);
i.putExtra("param2", num2)
使用
检索这些值int param1 = intent.getIntExtra("param1", -1);