Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android使alertDialog.builder不會點擊外面和按返回鍵消失的方法

Android使alertDialog.builder不會點擊外面和按返回鍵消失的方法

編輯:關於Android編程

這個問題之前一直困擾我,我的需求就是點擊對話框外面和按返回鍵對話框不會消失,按返回鍵還好解決,攔截下返回鍵就OK了。

但是點擊外面不好解決。之前有人說模態對話框,我看了一會,覺得不是我想要的效果。popWindow的話,必須提供父view.

重新看下api,發現設置setCancelable屬性就行了。

如:

public void showNoProject(){
    Builder builder = new AlertDialog.Builder(MainActivity.this)
    .setMessage("您還沒有項目,請先添加項目")
    .setPositiveButton("去添加項目", new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        
      }
    })
    .setNegativeButton("關閉", new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        
      }
    });
    builder.setCancelable(false);
    builder.show();
  }

還有另外兩種實現方法

一、在oncreate()方法中設置Dialog點擊屏幕不可取消,實例代碼如下:

  @Override  
  public void onCreate(Bundle icicle)
  {
   super.onCreate(icicle);
   this.setCancelable(false);// 設置點擊屏幕Dialog不消失
    int style = DialogFragment.STYLE_NORMAL, theme = 0;
    setStyle(style,theme);
  }

二、將Activity設置成窗口的樣式實現Dialog或者Popupwindow效果在開發中是很常用的一種方式,在AndroidMenifest.xml中將需要設置的Activity增加android:theme="@android:style/Theme.Dialog"屬性即可。但是窗口化的Activity有個問題就是:點擊窗口空白處Activity會finish。如何避免這個問題呢,辦法如下:

1、resvaluesstyles.xml

<resources>
  <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
    <item name="android:windowCloseOnTouchOutside">false</item>
  </style>
</resources>
YourActivity.this.setFinishOnTouchOutside(false);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

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