2011-12-06 55 views
1

我正在使用3個活動的應用程序。活動3從2打開,2從2打開。我想要得到兩個用戶在活動3中輸入的數字並在活動2中處理它們。來自返回的包的值始終爲0

這是我當前在活動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

你應該把PARAMS直接在意向

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

檢索這些值使用

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

link

+0

釷阿克斯,如果你不介意我問,我怎麼才能從我的第二個活動中得到這些數字? Intent類似乎沒有任何用鍵獲取整數的方法,嘗試使用Bundle似乎只是使程序崩潰。 – bendecoste

+0

更改了回覆以顯示檢索 –

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.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 
} 
+0

非常感謝,我當時假設onPause會在我點擊後退按鈕時被調用,這說明我正在收到的崩潰。將onPause更改爲onBackPressed,可能應該提到我正在使用後退按鈕。再次感謝 – bendecoste

+0

樂意幫助,祝好,謝爾坎 – serkanozel