Android:没有收到额外的意图ID

时间:2015-10-03 09:28:21

标签: android android-intent

您好我正在尝试将数据从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);

3 个答案:

答案 0 :(得分:3)

只需将destination.username更改为MainActivity.username,因为您的变量usernamestatic中被声明为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");

    }