Значения из возвращенного пакета всегда 0 - PullRequest
1 голос
/ 06 декабря 2011

Я работаю над приложением с 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 ]

3 голосов
/ 06 декабря 2011

Попробуйте этого пользователя, @ 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
}
2 голосов
/ 06 декабря 2011

Вы должны поставить параметры непосредственно в намерении

i.putExtra("param1", num1);
i.putExtra("param2", num2)

для извлечения этих значений используйте

int param1 = intent.getIntExtra("param1", -1);

ссылка

...