0

私の小さなテスト アプリは、すべての連絡先を表示する ListActivity です。ユーザーがいずれかをクリックすると、"people" 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 で提供される「人」アプリの一部です。ありがとう。

4

1 に答える 1

0

これについてアンドロイドにバグを報告しました。誰かがそれを見て、文書化されていない回避策があると答えました。バグレポートから:

文書化されていない回避策は、 putExtra("finishActivityOnSaveCompleted", true); を呼び出すことです。ACTION_EDIT インテントで。
ただし、これは文書化されていないため、どの Android バージョンで使用されるかわかりません。

試してみたところ、使用している Android のバージョン 4.1.2 で動作します。詳細については、問題 39262を参照してください。

于 2012-11-08T21:29:06.280 に答える