2017-05-18 29 views
-2

我知道这一点,它工作正常如何在Android中将最终字符串从一个活动传输到另一个活动?

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

你能否提供更多信息?例如,你正在采取什么错误?也许全班让我们来检查你的命名空间范围? –

+0

对于像那样的字符串常量,只需将其设置为静态,并在其他活动中直接访问它。 –

+0

它按照我知道的工作 – jagapathi

回答

1

在声明字符串常量静态这样的:

public static final String ADMIN_USERNAME= "user"; 

你并不需要使用额外的意图来访问值在另一个活动,直接访问ADMIN_USERNAME字符串常量:

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

您的意图为空。它在生命周期早期的一个电话

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

,请务必让这条线的onCreate如果你在室内onAttach

调用另外,还要确保你的关键是正确的。请注意我固定它也为“admin_username”

好运

埃姆雷

相关问题