Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android阻止AlertDialog關閉,androidalertdialog

Android阻止AlertDialog關閉,androidalertdialog

編輯:關於android開發

Android阻止AlertDialog關閉,androidalertdialog


 1 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 2 builder.setTitle("測試");
 3 
 4 LayoutInflater inflater = getActivity().getLayoutInflater();
 5 View view = inflater.inflate(R.layout.dialogfragment_num_input, null);
 6 builder.setView(view);
 7 
 8 builder.setPositiveButton("確定",
 9         new DialogInterface.OnClickListener() {
10             @Override
11             public void onClick(DialogInterface dialog, int id) {
12 
13                 Field field = null;
14 
15                 try {
16                     //通過反射獲取dialog中的私有屬性mShowing
17                     field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
18                     field.setAccessible(true);//設置該屬性可以訪問
19                 } catch (Exception ex) {
20 
21                 }
22 
23                 String inputValue = String.valueOf(mEdit.getText());
24                 if (inputValue == null || "".equals(inputValue)) {
25                     try {
26                         //設置dialog不可關閉
27                         field.set(dialog, false);
28                         dialog.dismiss();
29                     } catch (Exception ex) {
30                     }
31                 } else {
32 
33                    //
34                    //做自己的事
35                    //
36                     try {
37                         //關閉
38                         field.set(dialog, true);
39                         dialog.dismiss();
40                     } catch (Exception ex) {
41                     }
42                 }
43             }
44         });
45 builder.setNegativeButton("取消",
46         new DialogInterface.OnClickListener() {
47             @Override
48             public void onClick(DialogInterface dialog, int id) {
49 
50                 Field field = null;
51 
52                 try {
53                     //通過反射獲取dialog中的私有屬性mShowing
54                     field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
55                     field.setAccessible(true);//設置該屬性可以訪問
56                 } catch (Exception ex) {
57                 }
58 
59                 try {
60                     field.set(dialog, true);
61                     dialog.dismiss();
62                 } catch (Exception ex) {
63                 }
64 
65             }
66         });
67 
68 
69 builder.create();

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved