2016-09-18 63 views
-1

一個額外的上一次活動 - 「乙 - 」ç - >回到B如何返回到具有從另一個活動

其中A必須增派到B和B有一個按鈕(回按鈕)到C.當從C按下後退按鈕時,它必須回到B,仍然有額外的A.基本上,B和C前後移動,兩者在離開時保持不變,沒有數據被破壞。

但是,在我的情況下,它返回到A,如果我使用finish()startActivity()該應用程序崩潰,說它是NullPointerException。我想這是因爲B沒有收到任何額外的A,因爲它是C調用B.

我應該把A的額外從B轉到C再回到B嗎?應該怎麼做?

一個

String indicate = textView.getText().toString(); 
Intent t = new Intent(getApplicationContext(), Details.t.putExtra("indicate", indicate); 
startActivity(t); 
finish(); 

B(的onCreate())

Intent g = getIntent(); 
String indica = g.getExtras().getString("indicate"); 
TextView diseaseLabel = (TextView) findViewById(R.id.statusTxt); 
diseaseLabel.setText(indica); 

Ç

public boolean onOptionsItemSelected(MenuItem item) { 
    //finish(); 
    //Intent i = new Intent(this.context, B.class); 
    //startActivity(i); 
    return super.onOptionsItemSelected(item); 

} 
+0

使用'startactivityforresult'傳遞或獲取數據的方法 –

回答

0

您需要使用startActivityForResult才能返回到B活動而不會銷燬數據。

例如當你在B活性啓動C活性用下面的代碼

Intent intent = new Intent(B.this, C.class); 
startActivityForResult(intent, REQUEST_RESULT_CODE); //suppose resultCode == 2; 

,當你需要回到B活性使用下面的代碼

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    Intent intent = new Intent(); 
    setResult(RESULT_OK, intent); 
    finish(); 
    return super.onOptionsItemSelected(item); 
} 
0

一種方法,你可以做的是保存indicateSharedPreferencesPreferenceManager.getDefaultSharedPreferences(Context context)所以你不」不斷傳遞信息。

但顧名思義,這通常用於首選項或設置。但是你明白了吧?

相關問題