2017-05-18 9 views
-2

は、私がこのことを知って、それがアンドロイドで、あるアクティビティから別のアクティビティに最終的な文字列を転送するにはどうすればよいですか?

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

正常に動作し、これは次のレイアウトに:

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

が、私は、最終的な文字列をtranferする必要があるが、私はこれを試してみましたが、それは仕事をdoesntの:

public final String ADMIN_USERNAME= getIntent().getStringExtra("admin_username"); 
01:次のレイアウトで
public static final String ADMIN_USERNAME= "user"; 

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

この

イムこのエラーを取得:

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

は、あなたがより多くの情報を与えることができ、私はまた、「admin_username」

幸運としてそれを固定に注意してください?たとえば、あなたが取っているエラーは何ですか?あなたの名前空間の範囲を確認するための完全なクラスですか? –

+0

あなたのような文字列定数については、それを静的にして他のアクティビティで直接アクセスしてください。 –

+0

それは私が知っている通りに動作します – jagapathi

答えて

1

あなたは次のようにstaticとして文字列定数を宣言する場合:

public static final String ADMIN_USERNAME= "user"; 

あなたが別の活動の値にアクセスするために意図エクストラを使用する必要はありません

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

あなたの意図はnullです。それはあなたがまた、あなたのキーが正しいことを確認してONATTACH

の内側に呼び出している場合は、のonCreateでこの行を呼び出すことを確認し、ライフサイクルに

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

早い呼び出します。

エムレ

関連する問題