如何在android中将最终字符串从一个活动转移到另一个活动?

时间:2017-05-18 17:16:49

标签: android final data-transfer

我知道这件事并且工作正常

    Intent i1 = new Intent(Login.this, Welcome.class);
    i1.putExtra("username","the name");
    startActivity(i1);

这在下一个布局中:

    String username = getIntent().getStringExtra("username");

但是我需要传输最后一个字符串,我试过这个,但它不起作用:

    public static final String ADMIN_USERNAME= "user";

    Intent intent = new Intent(Login.this,SignUp.class);
    intent.putExtra("admin_username",ADMIN_USERNAME);
    startActivity(intent);

这在下一个布局中:

    public final String ADMIN_USERNAME= getIntent().getStringExtra("admin_username");

我收到此错误:

    Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference

2 个答案:

答案 0 :(得分:1)

当您将字符串常量声明为静态时,如下所示:

public static final String ADMIN_USERNAME= "user";

您不需要使用intent extras来访问另一个活动中的值,只需直接访问ADMIN_USERNAME字符串常量:

if (someString.equals(MyActivity.ADMIN_USERNAME)) {
    //Do something....
}

答案 1 :(得分:0)

你的意图是空的。这是生命周期中的早期调用

  

String username = getIntent()。getStringExtra(“admin_username”);

如果您在onAttach内部调用

,请确保在onCreate中调用此行

还要确保您的密钥正确无误。请注意我将其修复为“admin_username”

祝你好运

埃姆雷