Android Intent.getStringExtra()返回null

hot*_*key 40 string null android extras android-intent

这是将字符串添加到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();
Run Code Online (Sandbox Code Playgroud)

这是我尝试提取它们的方式onActivityResult():

String name = data.getStringExtra("Name");
String desc = data.getStringExtra("Description");
int prior   = data.getIntExtra("Priority", 50);
Run Code Online (Sandbox Code Playgroud)

但第二个代码块后namedescnull的,虽然prior有它应有的价值.此外,在调试器中,我可以看到,它data.mExtras.mMap包含所需的字符串,但仅在第一次请求之后.

cod*_*gic 91

当您插入Extras尝试添加时.toString()

i.putExtra("Name", edt_name.getText().toString());
Run Code Online (Sandbox Code Playgroud)

CharSequence在那里看到了值,但您需要将其转换为String要调用的值getStringExtra().显然,只是这样做Strings.您可以看到正确的值,int因为这是正确完成的

  • 它有效是因为 `""` 是一个字符串文字,您正在添加它。它的工作方式与 `"" + 2` 输出为 `"2"` 的方式相同。添加到文字中的任何内容都通过它们自己的类的“toString”函数转换为字符串。 (2认同)