我有一个显示所有聚合联系人的ListActivity。当用户单击其中一个时,我的代码将调用startActivityForResult。所有这些都能正常工作。当用户完成编辑时,我希望再次显示我的ListActivity。相反,将显示"people“活动。类似地,我的onActivityResult函数永远不会被调用。
下面是处理点击的代码:
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id)
{
Cursor cur = ((SimpleCursorAdapter)parent.getAdapter()).getCursor();
cur.moveToPosition (position);
String key = cur.getString (2); // "2" is the col containing the LOOKUP_KEY
System.out.println ("clicked " + key);
// make intent to edit contact
Intent intent = new Intent (Intent.ACTION_EDIT);
intent.setData (Uri.parse (ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + key));
startActivityForResult (intent, 2);
}我还有一个onActivityResult函数:
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
System.out.println ("request " + requestCode + ", result " + resultCode);
}有什么建议吗?
发布于 2012-11-09 05:25:45
我向android提交了一个关于这个的bug。有人查看了它,并回应说,有一个未记录的解决方法。从错误报告中:
无文档记录的解决方法是在ACTION_EDIT Intent上调用putExtra("finishActivityOnSaveCompleted",true);。
但是,由于这是未记录的,我不知道哪个Android版本会使用它。
我试过了,它适用于我正在使用的Android版本: 4.1.2。有关更多信息,请参阅问题39262。
发布于 2012-11-02 13:33:12
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == 2) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
// Do something with the contact here (bigger example below)
}
}
}将您的onActivity结果替换为。for request code get after will work
发布于 2012-11-02 13:21:40
添加
super.onActivityResult(requestCode, resultCode, data);在OnActivtyResult()中。
https://stackoverflow.com/questions/13189699
复制相似问题