我了解如何使用 Intent 将字符串值从MainActivity传递到SecondaryActivity,但是你会如何做到这一点呢?这是我正在使用的代码,我只是不知道将接收类代码放在哪里。
在我的 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
的 Intent 创建。它也将在应用程序启动时创建。
在尝试从中获取额外内容之前,您需要确保额外内容确实存在!它可能为空!
所以这应该在你膨胀 View 之后的 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”可以让其他开发人员更容易阅读。
关于java - 使用 Intent 在 Activity 之间传递字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325093/