2016-09-18 4 views
-1

Aから余分を持って、前の活動に戻りますボタンをCに戻す)Cから戻るボタンを押すと、Aから余分な部分が残っているBに戻る必要があります。基本的には、BとCは前後に移動します。 。はどのように別のアクティビティ

ただし、私の場合はAに戻り、finish()またはstartActivity()を使用するとアプリがクラッシュし、NullPointerExceptionと表示されます。私はBがAから余分なものを受け取っていないからだと思った。

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

Cあなたが保存されて行うことができます

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

} 
+0

使用 '次のコードを使用しstartactivityforresult'データの受け渡し方法 –

答えて

0

データが破棄されずにBアクティビティに戻るには、startActivityForResultを使用する必要があります。例えば

次のコード

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

とBの活動開始C活動にあり、あなたが戻っB活性に行く必要があるときは、

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

一つの方法あなたのindicateSharedPreferencesPreferenceManager.getDefaultSharedPreferences(Context context)スルーますので、「ドン物事を回し続ける。

名前が示すように、これは通常、[環境設定]または[設定]で使用されます。しかし、あなたはそのアイデアを得ていますよね?

関連する問題