2012-03-23 4 views
0

XMLを使用して1つのアクティビティにusernameの値を渡しています。 「Hello/Welcome」のような次の画面で値を思い出したいと思います。 GetExtraとPutExtraはどのように使用できますか?以前に別のアクティビティで入力されたユーザー名を呼び出す方法

Pls。以下のコードを見つけてください。私は同じことを試しました。 1つの活動中のユーザー名の値を格納するために

Intent myActivity2 = new Intent(this,Activity1.class); 
myActivity2.putExtra("nickname", R.id.mynickname3); 
startActivity(myActivity2);   

他のアクティビティに値をリコール:

Bundle extras = getIntent().getExtras(); 
String val = extras.getString("nickname"); 
TextView tv=new TextView(this); 
tv.setText(val); 

答えて

0

あなたはほぼ正しいです。

EditTextのIDを渡すだけでは不十分です。

((EditText)findViewById(R.id.mynickname3)).getText().toString();

int型putExtraを - あなたは、コードの下に使用する必要があります。他のすべてはうまくいくはずです。

UPDATE:経由OnCreateイベントでcontentViewとしてあなたのTextViewを設定することを忘れないでください:

最初の活動で
setContentView(..) 
+0

おかげで、しかし:

myActivity2.putExtra("nickname", R.id.mynickname3); 

あなたがのEditText(ニックネーム)のIDを書かれている、代わりにそれはようでなければなりません私は変更を加えるために、コーディングの面でちょっとした工夫が必要です。私は初心者です! :) – Mannii88

0

、あなたは整数値(R.id.mynickname3)に渡しています。代わりに、文字列を与える必要があります。これを代わりに使用してください:

myActivity2.putExtra("nickname", getString(R.id.mynickname3)); 

不必要にバンドルを取得しようとしています。試してみてください:

String val = getIntent().getStringExtra("nickname"); 
TextView tv = new TextView(this); 
if (val != null) 
{ 
    tv.setText(val); 
} 
+0

私はあなたが指摘したように、変更を加えました。ただし、値は表示されません。スタックトレース:3月23日19:58:31.249:E/PerformBackupThread(61):com.android.server.BackupManagerService $ BackupHandler.handleMessage(BackupManagerService.java:314)で\t 3月23日19:58:31.249:E/PerformBackupThread(61):\t android.os.Handler.dispatchMessage(Handler.java:99) 03-23 19:58:31.249:E/PerformBackupThread(61):\t android.os.Looper.loop(Looper。 @ Mannii88、R.id.mynickname3はaを参照していますか?(Java:123) 03-23 19:58:31.249:E/PerformBackupThread(61):\t android.os.HandlerThread.run(HandlerThread.java:60) – Mannii88

+0

'String'か' EditText'ですか?私が提供したコードは文字列を前提としていますが、EditTextの場合、myActivity2.putExtra( "nickname"、(EditText)findViewById(R.id.mynickname3))。getText()); 'これを使用しないとこれを修正すると、このハンドラのエラーは無関係かもしれません。 – Phil

+0

GetExtraのコードをどのように与えるか教えてください。 – Mannii88

2

ユーザ名を再利用する場合は、sharedPreferenceを使用してください。

userNameを別のアクティビティに渡してから、それを使用することはお勧めできません.userNameのようなフィールドは何度も何度も使用する必要があります。あなたのコード内

+0

私はそれを調べます::) – Mannii88

0

だけ愚かな間違い:あなたの答えのための

txtNickName = (EditText) findViewById (R.id.mynickname3); 
myActivity2.putExtra("nickname", txtNickName.getText().toString()); 
+0

こんにちはParesh、これは、対応する活動(getExtraとPutExtra)で精巧にすることができれば役に立ちます。ありがとう! :) – Mannii88

関連する問題