2012-11-03 57 views
0

我的小测试应用程序是一个ListActivity,它显示所有联系人。当用户点击一个时,它会打开“人员”ACTION_EDIT活动。这工作正常。当用户点击“返回”或以其他方式完成编辑时,主“人员”列表活动开始,而不是返回到我的活动。返回按钮不返回到先前的活动

这是怎么发生的?

这里是我的代码:

public class ReadContact extends ListActivity implements OnItemClickListener 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     ... 
    } 

    @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); 
    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); 
    } 

    @Override 
    protected void onActivityResult (int requestCode, int resultCode, Intent data) 
    { 
    System.out.println ("request " + requestCode + ", result " + resultCode); 
    } 
} 

注意onActivityResult不会被调用。另请注意,我无法控制联系人编辑代码 - 这是android提供的“人”应用程序的一部分。 谢谢。

+0

这可能是“people”ACTION_EDIT代码中的一个错误。我提交了以下错误报告,其中还包含整个示例项目的zip文件:[link](https://code.google.com/p/android/issues/detail?can=4&start=0&num=100&q=&colspec = ID%20Type%20Status%20Owner%20Summary%20Stars&GROUPBY =&排序=&ID = 39262)。 @CommonsWare –

回答

0

我向android提交了一个bug。有人看着它,并回应说,有一个无证的解决方法。从错误报告:

未公开的解决方法是调用putExtra(“finishActivityOnSaveCompleted”,true);在ACTION_EDIT意图上。
但是,由于这是无证的,我不知道哪个Android版本将使用它。

我试过了,它适用于我使用的Android版本:4.1.2。有关更多信息,请参阅issue 39262

相关问题