我知道这件事并且工作正常
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
答案 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”
祝你好运埃姆雷