編輯:關於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);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
無需Root 三星手機另類“刪除”APP
很多Android手機隨機都預裝了很多無法卸載的第三方APP,這些APP既浪費資源還有偷跑流量的隱患。那麼,在不Root系統的前提下如何將它們“
觀察者模式在android中使用
觀察者模式(Observer)觀察者模式是對象的行為模式,又被叫做為模型-視圖模式。這種模式定義了一種一對多的依賴關系,使多個觀察者對象同時監聽某個角色對象。一旦這個角色
Android仿今日頭條滑動頁面導航效果
最近項目中用到了滑動頁面,也就是和目前市場上很火的今日頭條頁面滑動類似,在網上找了一下,大部分都是用ViewPager來實現的,剛開始我用的是ViewPager+View
使用Kotlin開發Android應用
1、Kotlin介紹 [Kotlin](https://kotlinlang.org/) Kotlin是一門基於JVM的編程語言,它正成長為Android開發中用於替代J