Android使alertDialog.builder不會(huì)點(diǎn)擊外面和按返回鍵消失的方法
這個(gè)問(wèn)題之前一直困擾我,我的需求就是點(diǎn)擊對(duì)話框外面和按返回鍵對(duì)話框不會(huì)消失,按返回鍵還好解決,攔截下返回鍵就OK了。
但是點(diǎn)擊外面不好解決。之前有人說(shuō)模態(tài)對(duì)話框,我看了一會(huì),覺(jué)得不是我想要的效果。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效果在開(kāi)發(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實(shí)現(xiàn)三角形氣泡效果方式匯總
這篇文章主要介紹了Android實(shí)現(xiàn)三角形氣泡效果方式匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Android開(kāi)發(fā)實(shí)現(xiàn)長(zhǎng)按返回鍵彈出關(guān)機(jī)框功能
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)長(zhǎng)按返回鍵彈出關(guān)機(jī)框功能,涉及Android針對(duì)長(zhǎng)按事件的響應(yīng)與處理相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
Android面試Intent采用了什么設(shè)計(jì)模式解析
這篇文章主要為大家介紹了Android面試Intent采用了什么設(shè)計(jì)模式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Android自定義組件獲取本地圖片和相機(jī)拍照?qǐng)D片
這篇文章主要為大家詳細(xì)介紹了Android自定義組件獲取本地圖片和相機(jī)拍照?qǐng)D片的相關(guān)資料,非常炫酷的效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android內(nèi)部存儲(chǔ)改變讀取權(quán)限的方法
今天小編就為大家分享一篇Android內(nèi)部存儲(chǔ)改變讀取權(quán)限的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Android編程之ActionBar Tabs用法實(shí)例分析
這篇文章主要介紹了Android編程之ActionBar Tabs用法,結(jié)合實(shí)例形式分析了ActionBar Tabs的功能及Tab切換不同的Fragment的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03

