Android使alertDialog.builder不會(huì)點(diǎn)擊外面和按返回鍵消失的方法
這個(gè)問(wèn)題之前一直困擾我,我的需求就是點(diǎn)擊對(duì)話框外面和按返回鍵對(duì)話框不會(huì)消失,按返回鍵還好解決,攔截下返回鍵就OK了。
但是點(diǎn)擊外面不好解決。之前有人說(shuō)模態(tài)對(duì)話框,我看了一會(huì),覺得不是我想要的效果。popWindow的話,必須提供父view.
重新看下api,發(fā)現(xiàn)設(shè)置setCancelable屬性就行了。
如:
public void showNoProject(){ Builder builder = new AlertDialog.Builder(MainActivity.this) .setMessage("您還沒(méi)有項(xiàng)目,請(qǐng)先添加項(xiàng)目") .setPositiveButton("去添加項(xiàng)目", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setNegativeButton("關(guān)閉", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.setCancelable(false); builder.show(); }
還有另外兩種實(shí)現(xiàn)方法
一、在oncreate()方法中設(shè)置Dialog點(diǎn)擊屏幕不可取消,實(shí)例代碼如下:
@Override public void onCreate(Bundle icicle) { super.onCreate(icicle); this.setCancelable(false);// 設(shè)置點(diǎn)擊屏幕Dialog不消失 int style = DialogFragment.STYLE_NORMAL, theme = 0; setStyle(style,theme); }
二、將Activity設(shè)置成窗口的樣式實(shí)現(xiàn)Dialog或者Popupwindow效果在開發(fā)中是很常用的一種方式,在AndroidMenifest.xml中將需要設(shè)置的Activity增加android:theme="@android:style/Theme.Dialog"屬性即可。但是窗口化的Activity有個(gè)問(wèn)題就是:點(diǎn)擊窗口空白處Activity會(huì)finish。如何避免這個(gè)問(wèn)題呢,辦法如下:
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);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android Webview的postUrl與loadUrl加載頁(yè)面實(shí)例
這篇文章主要介紹了Android Webview的postUrl與loadUrl加載頁(yè)面實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Flutter學(xué)習(xí)之矢量圖SVG的區(qū)域填色示例詳解
這篇文章主要為大家介紹了Flutter學(xué)習(xí)之矢量圖SVG的區(qū)域填色示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Android開發(fā)中R.java文件丟失或無(wú)法更新的解決方法
這篇文章主要介紹了Android開發(fā)中R.java文件丟失或無(wú)法更新的解決方法,較為詳細(xì)的列舉分析了出現(xiàn)R.java文件丟失或無(wú)法更新的常見原因及相應(yīng)的解決方法,需要的朋友可以參考下2016-02-02Android解析json數(shù)據(jù)示例代碼(三種方式)
本篇文章主要介紹了Android解析json數(shù)據(jù)示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Android Dialog 設(shè)置字體大小的具體方法
這篇文章介紹了Android Dialog 設(shè)置字體大小的具體方法,希望能幫助到有同樣需求的朋友,可能我的方法不是最好的,也希望有朋友指點(diǎn)2013-09-09Flutter交互并使用小工具管理其狀態(tài)widget的state詳解
這篇文章主要為大家介紹了Flutter交互并使用小工具管理其狀態(tài)widget的state詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Android編程之點(diǎn)擊按鈕的響應(yīng)方式小結(jié)【3種方式】
這篇文章主要介紹了Android編程之點(diǎn)擊按鈕的響應(yīng)方式,結(jié)合實(shí)例形式分析總結(jié)了常用的三種按鈕響應(yīng)方式,需要的朋友可以參考下2017-02-02Android顯式啟動(dòng)與隱式啟動(dòng)Activity的區(qū)別介紹
為什么要寫顯式啟動(dòng)與隱式啟動(dòng)Activity,Android的Acitivity啟動(dòng)大致有兩種方式:顯式啟動(dòng)與隱式啟動(dòng),下面分別介紹2014-09-09