2016-09-18 68 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)所以你不”不断传递信息。

但顾名思义,这通常用于首选项或设置。但是你明白了吧?

相关问题