[英]How to pass values between activity
我創建了3個活動: firstActivity
, secondActivity
和thirdActivity
。
firstActivity
是主要活動。 secondActivity
僅在收到SMS時才有效,然后將消息發送到thirdActivity
。 thirdActivity
將字符串值轉換為double值,然后將double值發送到firstActivity
。 我可以將值從secondActivity
發送到thirdActivity
,但我不知道如何將值從thirdActivity
傳遞給firstActivity
。 請告訴我如何做到這一點。
有幾種方法可以解決這個問題。
一種是使用自定義應用程序類來存儲整個應用程序的“全局值”。 這樣,你會在設定的值firstActivity
和使用它們thirdActivity
。
看看這個 SO問題,了解如何在Android應用程序中存儲全局狀態。
每當你有一個調用結果的活動時,就像在這種情況下你有thirdActivity一樣,你總是可以使用方法startActivityForResult而不僅僅是startActivity。 一旦thirdActivity完成了它的處理並且想要返回結果值,它應該調用setResult,就是這樣。
這種方法的問題在於你在中間有第二個活動。 真的有必要嗎?
謝謝您的幫助。 現在我可以將值從thirdActivity傳遞給firstActivity,這就是我的工作方式。
第三活動:
public class ThirdActivity extends Activity {
double value1, value2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
value1 = Double.parseDouble(value1FromSecondActivity);
value2 = Double.parseDouble(value2FromSecondActivity);
Intent intent = new Intent(this, FirstActivity.class);
intent.putExtra("Value1", value1);
intent.putExtra("Value2", value2);
startActivity(intent);
finish();
}
}
FirstActivity:
public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onResume() {
Bundle extras = getIntent().getExtras();
if (extras != null) {
dValue1 = extras.getDouble("Value1");
dValue2 = extras.getDouble("Value2");
Toast.makeText(getBaseContext(), dValue1 + " : " + dValue2, Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getBaseContext(), "Null", Toast.LENGTH_SHORT).show();
}
super.onResume();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.