2013-03-21 8 views
32

これは、文字列は、エクストラに追加されている方法ですnullを返しますコードブロックnamedescnullですが、priorの値は適切です。 さらに、デバッガでは、data.mExtras.mMapに必要な文字列が含まれていることがわかりますが、最初に要求した後にのみ表示されます。アンドロイドIntent.getStringExtraは()

+0

設定するデフォルト値ではなく、適切な値が正しいとお考えですか? –

+0

はい、問題は 'string'ではなく、いくつかの継承クラスを返す' edt_name.getText() 'にありますか? – hotkey

答えて

70

あなたはあなたがそこにCharSequence値を見ているが、あなたはgetStringExtra()を呼び出すためにStringに変換する必要があり.toString()

i.putExtra("Name", edt_name.getText().toString()); 

を追加しようと、あなたのExtrasを挿入します。明らかに、ちょうどStringsのためにこれをしてください。 intは正しく設定されているため、正しい値が表示されます。

+1

おかげさまで、 '' "+" edt_name.getText() 'はうまくいきませんね。 – hotkey

+1

' '' 'は文字列リテラルであり、追加しているので機能します。 '' 2 ''に '' 2 ''が出てくるのと同じように動作します。リテラルに何が追加されようとも、それ自身のクラスの 'toString'関数を介してStringに変換されます。 – MCeley

+0

@codeMagic、なぜそれが 'オブジェクト'だとおっしゃいますか?それは 'CharSequence'ですか? – Pacerier