Я работал над созданием диалогового окна, которое появляется, чтобы подтвердить, выходит ли пользователь из страницы.Как сделать диалог onBackPress в фрагменте в android?
В прошлом я использовал эту деятельность, поэтому у нее нет проблем. Мне просто нужно установить диалог внутри функции onBackPress
и вызвать finish()
, если пользователь решил уйти.
Однако в настоящее время я хотел бы переключить класс на фрагмент внутри табуста. Поэтому мне нужно не только обрабатывать onbackpress, но и случай, когда пользователь нажимает на панель вкладок, чтобы перейти на другую вкладку.
Я пробовал:
@Override
public void onDetach() {
AlertDialog.Builder builder = new Builder(ctx);
builder.setMessage(getResources().getString(R.string.quit_form));
builder.setNegativeButton(getResources().getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
File directory = new File(Constant.upload_imageFolder);
File[] files = directory.listFiles();
for (int i = 0; i < files.length; ++i) {
files[i].delete();
}
UploadForm.super.onDetach();
}
});
builder.setPositiveButton(getResources().getString(R.string.no),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
но аварии. Как решить проблему? И правильная функция onDetach для переопределения? Большое спасибо.
Update: Исключение при ondetach:
android.support.v4.app.SuperNotCalledException: Fragment UploadForm{42db9eb0 #3 id=0x7f050075} did not call through to super.onDetach()
Какая ошибка? И если вы замените 'onDetach' на' onBackPressed', это сработает? EDIT Посмотрите, что я нашел [ссылка] (http://stackoverflow.com/a/25574198/4385913) помогает ли это? –
onBackPressed не может обрабатывать футляр для нажатия на вкладку меню и вкладку изменения – user782104
А как насчет того, если вы попробуете это с помощью 'setKeyListenerOnView', например [this] (http://stackoverflow.com/a/27055873/4385913)? –