返回的bundle中的值始终为0

时间:2011-12-06 01:27:36

标签: android android-activity android-intent bundle

我正在开发一款包含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.

有什么想法吗?

非常感谢!

2 个答案:

答案 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);

link