[英]Passing String Values between Activities using intents
我了解如何使用意圖將字符串值從MainActivity傳遞到SecondaryActivity,但是您將如何實現Vise Versa。 這是我正在使用的代碼,我只是不知道將接收類代碼放在哪里。
在我的SecondActivity中
Intent intent = new Intent(SecondActivity.this, MainActivity.class);
String TimeValue = ("00:00:00");
intent.putExtra("TimeValue", TimeValue);
startActivity(intent)
這是我不確定將代碼放在哪里的代碼,因此在應用啟動時不會崩潰
String intent = getIntent().getExtras().getString("TimeValue");
TextView timeText = (TextView)findViewById(R.id.timeText);
timeText.setText(intent);
問題是MainActivity
不會總是以SecondActivity
的意圖創建的。 它也將在啟動應用程序時創建。
在嘗試從中獲取附加功能之前,您需要確保extras
確實存在! 可能為空!
因此,應在為視圖充氣后將其放在onCreate方法中。
Bundle extras = getIntent().getExtras();
String intentString;
if(extras != null) {
intentString = extras.getString("TimeValue");
} else {
intentString = "Default String";
}
TextView timeText = (TextView)findViewById(R.id.timeText);
timeText.setText(intentString);
我也強烈建議您將字符串的名稱更改為“ intentString”,而不是“ intent”。 名稱“ intent”通常用於實際的Intent
對象,而不是從Intent
獲取的String
。 因此,將其命名為“ intentString”會使其他開發人員更容易理解。
如果您試圖將數據從SecondActivity傳遞回MainActivity,請改用startActivityForResult
。
啟動SecondActivity並准備將數據傳遞回MainActivity后,創建一個新的Intent並使用SecondActivity.setResult(resultCode, Intent);
。 然后調用finish,以完成SecondActivity。
現在,在MainActivity中,您將調用onActivityResult()
,這將為您提供您在SecondActivity中作為數據參數傳遞的Intent。
您可以查看此鏈接以獲取更多信息: http : //developer.android.com/training/basics/intents/result.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.