android端点击Dialog的按钮Dialog消失或不消失

重要代码:
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);// false表示不关闭
field.set(dialog, true);// true表示关闭
使用代码:
btnUpPwd.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LayoutInflater inflater = LayoutInflater
.from(PersonalCenterActiviity.this);
final View view = inflater.inflate(R.layout.password_dialog,
null);
AlertDialog dialog = new AlertDialog.Builder(
PersonalCenterActiviity.this)
.setTitle("密码修改")
.setIcon(R.drawable.uppwd)
.setView(view)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {
try {
field = dialog
.getClass()
.getSuperclass()
.getDeclaredField(
"mShowing");
field.setAccessible(true);
EditText currentPwd = (EditText) view
.findViewById(R.id.currentPwd);
EditText Pwd = (EditText) view
.findViewById(R.id.pwd);
EditText configPwd = (EditText) view
.findViewById(R.id.configPwd);
if (currentPwd.getText().toString()
.trim().equals("")
|| Pwd.getText().toString()
.trim().equals("")
|| configPwd.getText()
.toString().trim()
.equals("")) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"必填项不能为空",
Toast.LENGTH_SHORT)
.show();
} else if (!(currentPwd.getText()
.toString().trim()
.equals(password))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"现有密码错误",
Toast.LENGTH_SHORT)
.show();
} else if (!(Pwd.getText()
.toString().trim()
.equals(configPwd.getText()
.toString().trim()))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"密码与确认密码不同",
Toast.LENGTH_SHORT)
.show();
} else if (password.equals(Pwd
.getText().toString()
.trim())) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"新密码与现有密码相同",
Toast.LENGTH_SHORT)
.show();
} else {
listPwd = new ArrayList();
listPwd.add(userId);
listPwd.add(Pwd.getText()
.toString().trim());
myPwdHandler = new MyPwdHandler();
myPwdThread = new MyPwdThread();
myPwdThread.start();
}
} catch (Exception e) {
e.printStackTrace();
}

}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {
//DoNothing
try {
if(field == null){
dialog.dismiss();
}else if(!(field == null)){
field.set(dialog, true);
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).create();
dialog.show();
}
});

猜你喜欢

转载自1397452815.iteye.com/blog/2204137
今日推荐