[英]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.