歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 4.0設置Dialog點擊屏幕不消失

業務的需求是變化莫測的,最近就遇到一個需求是——用戶只有點擊Dialog的取消按鈕才會消失,點擊屏幕的時候不消失。Android ICS對UI做了很大的變動,系統提倡使用DialogFragment,但是系統默認的操作習慣是點擊屏幕Dialog會自動消失。

為了實現業務的需求,想過使用Dialog風格的Activity,但是做出來的效果和系統的UI效果不匹配,最終只有失敗告終。在黔驢技窮的時候,決定再仔細撸一下Android文檔,終於在文檔中發現了Dialog的setCanceledOnTouchOutside屬性,具體使用如下:

  1. public class MyAlertDialogFragment extends DialogFragment {  
  2.   
  3.     public static MyAlertDialogFragment newInstance(int title) {  
  4.         MyAlertDialogFragment frag = new MyAlertDialogFragment();  
  5.         Bundle args = new Bundle();  
  6.         args.putInt("title", title);  
  7.         frag.setArguments(args);  
  8.         return frag;  
  9.     }  
  10.   
  11.     @TargetApi(11)  
  12.     @Override  
  13.     public Dialog onCreateDialog(Bundle savedInstanceState) {  
  14.         int title = getArguments().getInt("title");  
  15.   
  16.           
  17.         AlertDialog dialog = new AlertDialog.Builder(getActivity())  
  18.         .setIcon(R.drawable.ic_launcher)  
  19.           
  20.         .setTitle(title)  
  21.         .setPositiveButton(R.string.alert_dialog_ok,  
  22.             new DialogInterface.OnClickListener() {  
  23.                 public void onClick(DialogInterface dialog, int whichButton) {  
  24.                     ((MainActivity)getActivity()).doPositiveClick();  
  25.                 }  
  26.             }  
  27.         )  
  28.         .setNegativeButton(R.string.alert_dialog_cancel,  
  29.             new DialogInterface.OnClickListener() {  
  30.                 public void onClick(DialogInterface dialog, int whichButton) {  
  31.                     ((MainActivity)getActivity()).doNegativeClick();  
  32.                 }  
  33.             }  
  34.         )  
  35.         .create();  
  36.         dialog.setCanceledOnTouchOutside(false);// 設置點擊屏幕Dialog不消失   
  37.           
  38.         return dialog;  
  39.     }  
  40. }  

以上只是設置Dialog的一個小技巧,希望對大家有所幫助。

Copyright © Linux教程網 All Rights Reserved