2016-08-04 5 views
0

私はそれを行うことができますどのようなは、ダイアログ

FragmentManager fragmentManager = getActivity().getFragmentManager(); 
             DialogStyleCreator editor = new DialogStyleCreator(); 
             FragmentTransaction transaction = fragmentManager.beginTransaction(); 
             transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
             transaction.add(android.R.id.content, editor).commit(); 

のようなフルスクリーンのダイアログを起動した場合、そのように私は、メニューの左上に(アンドロイド戻る矢印をヒットした場合)または戻るボタンをクリックすると、アラートダイアログのような前のアクティビティに戻る代わりにダイアログが閉じられますか?あなたがコールバックを却下聞くためのオプションを持っていない可能性がありDialogFragmenttransaction.add(android.R.id.content, editor).commit();として追加しておりますので

答えて

2

あなたは、単にバックボタン

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5 
     && keyCode == KeyEvent.KEYCODE_BACK 
     && event.getRepeatCount() == 0) { 
     // Simply pop back your fragment stack here 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 


@Override 
public void onBackPressed() { 
    // Simply pop back your fragment stack here 
} 
+0

をクリックして呼び出すあなたはtransaction.addToBackStackでbackstackするフラグメントのトランザクションを追加することがありますが、アクティビティの[戻る]ボタンのためのインタフェースをDialogFragmentインスタンスを作成し、

fm.beginTransaction().add(sampleDialog, "Dialog").commit(); 

のようにそれを起動して、コールバックを設定することをお勧めヌル); バックスタックをポップバックすることがあります。 fragmentManager.popBackStack(); –

+0

左上隅の戻るボタンについては、単にonclicklistenerで同じものを適用してください。 –

+0

は、最も簡単で最も単純なものになるように押し戻されます。 – PSchuette

0

の機能をフラグメントマネージャのスタックであなたのトランザクションを入れて、無効にすることができます。 私は(​​

+0

それはレイアウトを台無しにすることはできません –