2012-11-03 55 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

相關問題