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

android Dialog的确定按钮点击后不取消对话框

2011-06-09 12:42 861 查看
private Dialog modifyNickName() {
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(
R.layout.alert_change_nickname, null);
return new AlertDialog.Builder(My.this).setIcon(
R.drawable.alert_dialog_icon).setTitle(
getString(R.string.change_nickname)).setView(textEntryView)
.setPositiveButton(R.string.alert_dialog_setting,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
EditText editNickNameText = (EditText) textEntryView
.findViewById(R.id.nickname);
String nickName = editNickNameText.getText()
.toString();
Toast.makeText(
My.this,
nickName,
Toast.LENGTH_SHORT).show();
Field field;
try {
field = dialog.getClass()
.getSuperclass().getDeclaredField(
"mShowing");
field.setAccessible(true);
if(nickName == null || nickName.equals(""))
{
field.set(dialog, false);
}else
{
field.set(dialog, true);
}
dialog.dismiss();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}).setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Field field;
try {
field = dialog.getClass()
.getSuperclass().getDeclaredField(
"mShowing");
field.setAccessible(true);
field.set(dialog, true);
dialog.dismiss();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}).create();
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dialog android null string
相关文章推荐