Android AlertDialog重新打开或阻止关闭
问题描述:
我有一个具有两个回调函数的AlertDialog。当用户点击“回拨”时,“是”或“否”。Android AlertDialog重新打开或阻止关闭
public AlertDialog getMydialog(final Context context, final MyCallback onSuccess,final MyCallback onCancel) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("MSG");
builder.setCancelable(false);
builder.setTitle("TITLE");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
onSuccess.callback();
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
onCancel.callback();
}
});
return builder.create();
}
我的回调:
myDialog = new MyClass(this).MyDialog(this, new MyCallback() {
@Override
public void callback() {
Log.d("test","test Click-YES");
}
}, new MyCallback() {
@Override
public void callback() {
Log.d("test","test Click-NO");
}
});
myDialog.show();
当我点击不超过对话框已被解除。 但不能再显示。例如:
myDialog = new MyClass(this).MyDialog(this, new MyCallback() {
@Override
public void callback() {
Log.d("test","test Click-YES");
}
}, new MyCallback() {
@Override
public void callback() {
Log.d("test","test Click-NO");
myDialog.show() // isnt work
}
});
myDialog.show();
任何人有想法禁用.dismiss当我点击“否”按钮? 或重新打开对话框?
谢谢!
答
为了防止Dialog
得到解雇你可以在AlertDialog
使用setOnShowListener
并添加您的代码..
final AlertDialog mAlertDialog = getMydialog(); //get Dialog
mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button button = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//your code
//you can call dissmiss later
}
});
Button button2 = mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//your code
//you can call dissmiss later
}
});
}
});
mAlertDialog.show();
答
((AlertDialog)对话框).getButton(AlertDialog.BUTTON_NEGATIVE) .setEnabled(false);
将此属性设置为您的警报对话框。这将禁用负号按钮
+0
一个按钮无任何功能:|其有趣:)也许它是如此无用。 – vihkat
谢谢。这很棒! – vihkat