您的位置:首页 > 移动开发 > Android开发

AlertDialog通过反射机制阻止Dialog关闭

2014-04-23 14:35 253 查看
// 让用户输入手机号码
final EditText inputServer = new EditText(mContext);
new AlertDialog.Builder(mContext).setTitle("请输入手机号码").setIcon(android.R.drawable.ic_dialog_info).setView(inputServer)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Field field = null;
try {
// 通过反射获取dialog中的私有属性mShowing
field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);// 设置该属性可以访问

if (null != inputServer.getText().toString() && !inputServer.getText().toString().equals("")) {

// 可以关闭
field.set(dialog, true);
dialog.dismiss();
} else {
// 输入框中内容为空,dialog不关闭
field.set(dialog, false);

// 提示用户输入登录信息
Toast.makeText(mContext, "请输入电话号码", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {

}
}
}).show();

有时候不想关闭AlertDialog,这是用Field。  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AlertDialog android 手机
相关文章推荐