Android4.0中Alertdialog对话框点击边缘外部消失问题解决
2013-06-28 12:07
393 查看
在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失。这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了源码,找到解决办法:
研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法
方法一:
setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用。按返回键还起作用
方法二:
setCanceleable(false);调用这个方法时,按对话框以外的地方不起作用。按返回键也不起作用
这两个方法都属于Dialog方法,可查阅源码
修改后的源码如下:
研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法
方法一:
setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用。按返回键还起作用
方法二:
setCanceleable(false);调用这个方法时,按对话框以外的地方不起作用。按返回键也不起作用
这两个方法都属于Dialog方法,可查阅源码
修改后的源码如下:
package com.android.settings; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.app.AlertDialog; import android.content.DialogInterface; import android.widget.EditText; import android.text.method.PasswordTransformationMethod;
public class TSActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog(); } private void AlertDialog() { final EditText editText = new EditText(this); editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); new AlertDialog.Builder(this) .setTitle("please input passwd") .setCancelable(false) .setIcon(android.R.drawable.ic_dialog_info) .setView(editText) .setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which){ String Thing = editText.getText().toString(); if(Thing.compareTo("600518") == 0) { Intent intent=new Inten(TSActivity.this,MSettings.class); startActivity(intent); Log.d("yj.chen","success-----"+Thing); } finish(); } }) .setNegativeButton("cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which){ finish(); } }) .show(); };
相关文章推荐
- Android4.0中Alertdialog对话框点击边缘外部消失问题解决
- 解决android中点击对话框外部,对话框消失的问题
- 解决Alertdialog触摸对话框边缘消失的问题
- 解决android中点击对话框外部,对话框消失的问题
- Android修改源码解决Alertdialog触摸对话框边缘消失的问题
- AlertDialog在触摸对话框边缘外部,对话框消失的问题
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- Android下关于AlertDialog点击 确定或者取消按钮 对话框自动消失的 解决办法
- 彻底解决,dialog点击外部消失,键盘没有消失的问题
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- 关于Android中AlertDialog的使用问题:点击AlertDialog外部不消失的代码操作
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- Android-ProgressDialog点击对话框外部是不让其消失
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android中Alertdialog对话框点击消失?
- Android PopupWindow悬浮弹框使用及解决back键点击不消失的问题
- Android studio 的AlertDialog控件,要实现点击确定和取消按钮时,对话框消失;点击空白处,对话框