ListFragmentの次のページに、Actionbar Activityのクラスがあり、その中の  
ActionBarのmenuItemsクリックした時、あるボタンからDialogFragmentを表示させているのですが、すぐにDialogが閉じ、ListFragmentに戻ってしまいます。

Dialogをすぐに勝手に閉じないようにしたいのと、ListFragmentに遷移しないようにし、そのままActionbar
Activity内に留めたいのですが、どのようにしたらよろしいでしょうか？

お知恵をお借り出来ますと幸いです。

ActionBarActivity クラス

```

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
    
            //遷移先がフラグメントなので、FragmentTransactionで書く。
            case R.id.menu_home:
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.replace(R.id.container, new Top());
                break;
    
            case R.id.menu_dialog:
                AlertDialogFragment alertDialog = new AlertDialogFragment();
                alertDialog.show(getFragmentManager(), "AlertDialogFragment");
                break;
        }
        finish();
        return super.onOptionsItemSelected(item);    }
    
```

DialogFragment

```

    public class AlertDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("タイトル");
        builder.setMessage("メッセージ");
        builder.setPositiveButton(R.string.ok ,null);
        builder.setNegativeButton(R.string.cancel, null);
        return builder.create();
    } }
    
```
CC BY-SA 3.0
2015-03-17T02:11:00.340
7997
2015-03-17T03:03:57.480
2015-03-17T03:03:57.480
8765
8765
question
android
ActionBarのmenuItemsクリックした時のDialogがすぐ落ちる
`finish();`を呼んでいるのが原因な気がします
CC BY-SA 3.0
2015-03-17T02:26:21.397
7998
2015-03-17T02:26:21.397
845
7997
answer
いろいろお困りだと思いますが、まずは作成しているアプリを一旦おやすみして、  
Androidプログラミング入門用の本を１冊読み進めるのが、最終的に時間の短縮になると思います。  
本を読み進めるなかで躓いて調べても分からなくなってしまったら、どんどん質問すべきだと思います。

さて、`ListFrament`に戻ってしまう件ですが、`onOptionsItemSelected`で`finish()`しています。  
`finish()`を呼び出すと、`Activity`を閉じてしまいます。  
`finish()`を削除すれば、希望の動作になると思います。

がんばってください。
CC BY-SA 3.0
2015-03-17T02:37:45.273
7999
2015-03-17T02:37:45.273
8216
7997
answer