2017-05-18 31 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」

好運

埃姆雷

相關問題