2016-08-04 2 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(); 

Как я могу сделать это так, что если я ударил андроид стрелку назад (в левом верхнем углу меню) или кнопка «Назад» закрывает диалоговое окно вместо возврата к предыдущему действию, например, в диалоговых окнах предупреждения?

ответ

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

Вы можете добавить сделку фрагмент в backstack по transaction.addToBackStack (ноль); Вы можете выскочить назад на fragmentManager.popBackStack(); –

+0

Для кнопки «Назад» в верхнем левом углу просто примените те же самые вещи в onclicklistener. –

+0

Перехват по нажатой спине будет самым простым, самым прямым вперед – PSchuette

0

Поскольку вы добавили DialogFragment, как transaction.add(android.R.id.content, editor).commit(); вы не можете иметь возможность слушать отклонить вызов обратно. Я предлагаю вам создать экземпляр DialogFragment и запустить его как

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

и установить обратный вызов интерфейса для деятельности Кнопка Назад Нажмите и вызвать dismiss();

+0

Я не могу, потому что он разрушает макет –

Смежные вопросы