您好我正在尝试将数据从textview发送到另一个活动,但在目标活动中它不会获取额外的意图数据ID。为了澄清,在目标活动中它不识别变量“username”。我该如何解决这个问题?
MainActivity活动(发件人)
public final static String username = "com.example.eugen.test.MainActivity.etUsername";
Intent destination_intent = new Intent(this, destination.class);
destination_intent.putExtra(username,etUsername.getText());
startActivity(destination_intent);
目的地活动
String usernameReceived = null;
usernameReceived = getIntent().getStringExtra(destination.username);
答案 0 :(得分:3)
只需将destination.username
更改为MainActivity.username
,因为您的变量username
在static
中被声明为MainActivity
。正如Ivan V所建议的那样,创建Constants
文件并在那里声明static
constants
总是一个很好的做法,它会让事情更清晰。
答案 1 :(得分:1)
您需要使用一个单独的密钥,例如" userName"当你把额外的东西和你得到额外的东西时。
Intent destination_intent = new Intent(this, destination.class);
destination_intent.putExtra("userName",etUsername.getText());
startActivity(destination_intent);
然后在目的地类
String usernameReceived = null;
Intent intent = getIntent();
if(intent != null) {
usernameReceived = getIntent().getStringExtra("userName");
}
我建议您创建单独的Constants类并放置
public final static String username = "com.example.eugen.test.MainActivity.etUsername";
那里。然后,您可以通过任何其他类的Constants.username访问它
答案 2 :(得分:1)
你没有得到正确的方法,你得到这样的
Intent destination_intent = new Intent(this, destination.class);
destination_intent.putExtra("userName",etUsername.getText());
startActivity(destination_intent);
然后在目的地类
String usernameReceived = null;
Intent intent = getIntent();
if(intent != null) {
usernameReceived = getIntent().getStringExtra("userName");
}