我正在創建一個對話框,彈出確認用戶是否退出該頁面。如何在Android中的片段onBackPress對話框?
在過去,我使用的活動,所以它沒有問題。我只需要將對話框放在覆蓋onBackPress
函數中,如果用戶選擇離開,則調用finish()
。
但是,目前我想將該類切換到tabhost內的片段。所以不僅我需要處理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正確的函數來覆蓋?非常感謝。
更新: 異常時ondetach:
android.support.v4.app.SuperNotCalledException: Fragment UploadForm{42db9eb0 #3 id=0x7f050075} did not call through to super.onDetach()
什麼是錯誤?如果你用'onBackPressed'替換'onDetach',它是否工作?編輯看看我發現[鏈接](http://stackoverflow.com/a/25574198/4385913)它有幫助嗎? – 2015-02-11 08:14:15
onBackPressed無法處理按菜單選項卡上的情況,並更改選項卡 – user782104 2015-02-11 08:20:14
那麼如果你嘗試使用'setKeyListenerOnView'像[this](http://stackoverflow.com/a/27055873/4385913)? – 2015-02-11 08:21:35