Android Intent.getStringExtra() 返回 null

Android Intent.getStringExtra() 返回 null[英] Android Intent.getStringExtra() returns null

 
本文介绍了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);

但是在第二个代码块之后 name 和 desc 是 null 的,尽管 prior 是正确的价值.此外,在调试器中,我可以看到 data.mExtras.mMap 包含所需的字符串,但仅在第一次请求之后.

推荐答案

网上绝大多数的教程都是错的

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();

因为这个代码写错的,不能实例化对象,推荐下面的写法
Intent i =this.intent //获取当前的实例,而不是实例化
 i.putExtra("Name", edt_name.getText());
i.putExtra("Description", edt_desc.getText());
i.putExtra("Priority", skb_prior.getProgress());
setResult(RESULT_OK, i); finish();


 

posted on 2022-12-25 16:37  漫思  阅读(263)  评论(0编辑  收藏  举报

导航