我知道我可以使用putExtra()
将数据发送到其他活动。 在这种情况下,接收意图必须管理数据。有没有办法将数据发送到另一个意图,并且当意图在onActivityResult()
中完成时数据正在返回?如何通过意向返回数据
我想要做什么:
搜索使用用户输入姓名的联系人
如果没有找到,启动联系人选择器意图
当联系人选取器返回联系用户挑选,仍然是 能够知道用户所做的初始输入
所以我想发送用户输入到联系人选择器的意图,并让它也返回这些数据。
任何想法?
我知道我可以使用putExtra()
将数据发送到其他活动。 在这种情况下,接收意图必须管理数据。有没有办法将数据发送到另一个意图,并且当意图在onActivityResult()
中完成时数据正在返回?如何通过意向返回数据
我想要做什么:
搜索使用用户输入姓名的联系人
如果没有找到,启动联系人选择器意图
当联系人选取器返回联系用户挑选,仍然是 能够知道用户所做的初始输入
所以我想发送用户输入到联系人选择器的意图,并让它也返回这些数据。
任何想法?
是的,看着startActivityForResult
和onActivityResult
,在那里你传递一个标识符startActivityForResult
识别发件人如:
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
break;
在有针对性的意图已经完成了系统调用onActivityResult
public void onActivityResult(int requestCode, int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// code 1 = take picture
if(requestCode==1 && resultCode==RESULT_OK) {
这里来自startAct ..的'1'以requestCode
参数的形式传入,并将结果传入'data'中。实际发送的内容取决于您所调用的活动。
E.g.在您自己的代码中,您可以在被调用的意图中执行以下操作,例如字符串“Hello World”的返回给调用者(“数据”是关键更高版本):
Intent intent = new Intent();
intent.putExtra("data", "Hello World");
setResult(RESULT_OK,intent);
,然后通过data.get("data")
对于一些更多的例子检索看看this class for the first part(线373+ )和this one for an own intent that returns data。
这就是我正在做的接收用户选择的联系人;-)但没有迹象表明我的额外数据将被返回。 – Hokascha 2012-01-11 17:02:51
感谢您的回答。 “实际发送的内容取决于您所调用的活动。”因此,尽管requestCode始终是相同的,但我无法发送和接收自定义数据,如用户输入? – Hokascha 2012-01-11 17:16:01
您从被叫意图中返回的用户输入是我最后一个例子中的“Hello World” – 2012-01-11 19:52:03