Android中阻止AlertDialog關(guān)閉實(shí)例代碼
Android如何關(guān)閉AlertDialog.Builder對(duì)話框呢?AlertDialog.Builder對(duì)話框沒(méi)有類似finish()或者dismiss()這樣的方法。
但是它的父類AlertDialog有dismiss方法,而且AlertDialog.Builder在.show()的時(shí)候會(huì)得到一個(gè)AlertDialog對(duì)象,我們就可以用dismiss方法將該Builder關(guān)閉。
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog dialog = builder.show(); dialog.dismiss();
關(guān)于Android阻止AlertDialog關(guān)閉具體代碼如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("測(cè)試");
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialogfragment_num_input, null);
builder.setView(view);
builder.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Field field = null;
try {
//通過(guò)反射獲取dialog中的私有屬性mShowing
field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);//設(shè)置該屬性可以訪問(wèn)
} catch (Exception ex) {
}
String inputValue = String.valueOf(mEdit.getText());
if (inputValue == null || "".equals(inputValue)) {
try {
//設(shè)置dialog不可關(guān)閉
field.set(dialog, false);
dialog.dismiss();
} catch (Exception ex) {
}
} else {
//
//做自己的事
//
try {
//關(guān)閉
field.set(dialog, true);
dialog.dismiss();
} catch (Exception ex) {
}
}
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Field field = null;
try {
//通過(guò)反射獲取dialog中的私有屬性mShowing
field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);//設(shè)置該屬性可以訪問(wèn)
} catch (Exception ex) {
}
try {
field.set(dialog, true);
dialog.dismiss();
} catch (Exception ex) {
}
}
});
builder.create();
- Android 自定義AlertDialog對(duì)話框樣式
- Android AlertDialog自定義樣式實(shí)現(xiàn)代碼
- Android實(shí)現(xiàn)點(diǎn)擊AlertDialog上按鈕時(shí)不關(guān)閉對(duì)話框的方法
- Android中AlertDialog各種對(duì)話框的用法實(shí)例詳解
- Android使用自定義alertdialog實(shí)現(xiàn)確認(rèn)退出按鈕
- Android中AlertDialog的六種創(chuàng)建方式
- Android對(duì)話框AlertDialog.Builder使用方法詳解
- Android編程之自定義AlertDialog(退出提示框)用法實(shí)例
- Android中AlertDialog 點(diǎn)擊按鈕后不關(guān)閉對(duì)話框的功能
- ANDROID中自定義對(duì)話框AlertDialog使用示例
- Android編程自定義AlertDialog樣式的方法詳解
相關(guān)文章
Android自定義View新年煙花、祝福語(yǔ)橫幅動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了Android自定義View新年煙花、祝福語(yǔ)橫幅動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Android自定義View實(shí)現(xiàn)課程表表格
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)課程表表格,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Android使用 Retrofit 2.X 上傳多文件和多表單示例
本篇文章主要介紹了Android使用 Retrofit 2.X 上傳多文件和多表單示例,具有一定的參考價(jià)值,有興趣的小伙伴一起來(lái)了解一下2017-08-08
Android WebView的使用方法及與JS 相互調(diào)用
這篇文章主要介紹了Android WebView的使用方法及與JS 相互調(diào)用的相關(guān)資料,WebView 是 Android 中一個(gè)非常實(shí)用的組​件, WebView 可以使得網(wǎng)頁(yè)輕松的內(nèi)嵌到app里,還可以直接跟js相互調(diào)用,需要的朋友可以參考下2017-07-07
Android?Flutter實(shí)現(xiàn)任意拖動(dòng)的控件
使用flutter開(kāi)發(fā)是需要控件能拖動(dòng),比如畫板中的元素,或者工具條等,所以本文為大家準(zhǔn)備了Flutter實(shí)現(xiàn)任意拖動(dòng)控件的示例代碼,希望對(duì)大家有所幫助2023-07-07
Android編程布局(Layout)之AbsoluteLayout用法實(shí)例分析
這篇文章主要介紹了Android編程布局(Layout)之AbsoluteLayout用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Android絕對(duì)布局AbsoluteLayout的實(shí)現(xiàn)方法,需要的朋友可以參考下2015-12-12
android 線性布局LinearLayout實(shí)例代碼
android 線性布局LinearLayout實(shí)例代碼,需要的朋友可以參考一下2013-05-05

