java - 使用 Intent 在 Activity 之间传递字符串值

标签 java android android-intent

我了解如何使用 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/

相关文章:

java - Appenders 的 Log4j 不同的 .property 文件

java - ? Java super 字符串下界

java - 改变 GridLayout 的宽度

java - 将值从 Activity 传递到 Android 中的下一个 Activity

android - 当应用程序在 Android 中处于后台时如何显示启动画面?

java - 组件的定位(如何将几个按钮放置在屏幕中央相同大小)

Java - 从处理程序引用外部类

java - Android:编辑xml中定义的textview

android - 启动结果对话框以将值返回到主要 Activity

android - Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用