web-dev-qa-db-ja.com

Android Intent.getStringExtra()はnullを返します

これが、文字列がExtrasに追加される方法です。

_Intent i = new Intent();
i.putExtra("Name", edt_name.getText());
i.putExtra("Description", edt_desc.getText());
i.putExtra("Priority", skb_prior.getProgress());
setResult(RESULT_OK, i);
finish();
_

これは私がonActivityResult()でそれらを抽出しようとする方法です:

_String name = data.getStringExtra("Name");
String desc = data.getStringExtra("Description");
int prior   = data.getIntExtra("Priority", 50);
_

しかし、2番目のコードブロックの後、namedescnullですが、priorには適切な値があります。さらに、デバッガーでは、_data.mExtras.mMap_に必要な文字列が含まれていることがわかりますが、それは最初の要求の後のみです。

37
hotkey

Extrasを挿入すると、.toString()を追加しようとします

_i.putExtra("Name", edt_name.getText().toString());
_

そこにCharSequence値が表示されていますが、getStringExtra()を呼び出すには、Stringに変換する必要があります。明らかに、Stringsに対してこれを行ってください。 intの正しい値が表示されます

86
codeMagic