主要活动:
Intent intent = new Intent(Main.this, Secondary.class);
intent.putExtra("name",value);
startActivity(intent);
次要活动:
String value = getIntent().getStringExtra("name")
这里有什么问题?我搜索了很多都没有成功...
谢谢
尝试这个:
在 MainActivity 中:
//Make sure Secondary is an Activity name. Secondary.class.
Intent intent = new Intent(MainActivity.this, Secondary.class);
intent.putExtra("name",value);
startActivity(intent);
在次要活动中:
String value = getIntent().getExtras().getString("name");
您需要先获取捆绑包,然后从中提取字符串。
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
bundle.getString("name");
}
两者都应该工作。第二个是检查捆绑包是否为空。
我发现我的代码有问题,这是我的错。这不是意图问题。谢谢你们。
调用时putExtra(...)
,请确保value
对象是String
. 如果您要传递任何其他对象,请确保显式调用value.toString()
,尤其是在处理 GUI 组件时。
有关更多信息,请参见此处:Android Intent.getStringExtra() 返回 null
这种方法我用过几次。只需确保 value 具有值或已初始化。您可以使用Log或 System.out.println(value); 在.putExtra之后查看(在控制台选项卡中)是否值为空。在第二个活动中也是如此。
更改此行
String value = getIntent().getStringExtra("name");
到这条线
String value = getIntent().getString("name");
你可以试试这个 -->
intent.putExtra("name", textView.getText().toString());
如果错误仍然存在,请签入您使用正确 id 路径的第二个活动...:-
value = findViewById(R.id.);