我有一个静态方法,可以在其中创建一个对话框
public static void showDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("ok", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}});
builder.setCancelable(false);
builder.create().show();
}
在我的应用程序中,可能会出现这样的情况:方法可以被多次调用,但我不想打开2个或更多的对话框。如何检查对话框是否打开?谢谢..。
发布于 2011-04-14 16:21:10
您应该将此代码放入您想要支持此功能的每个活动中。
public AlertDialog myAlertDialog;
public void showDialog(Context context) {
if( myAlertDialog != null && myAlertDialog.isShowing() ) return;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}});
builder.setCancelable(false);
myAlertDialog = builder.create();
myAlertDialog.show();
}
发布于 2011-04-14 16:15:19
重写您的方法以返回AlertDialog
,将其分配给一个成员,并在调用此方法之前检查它是否为空或!isShowing()
。
您也可以改用onCreateDialog
。在基类中为需要管理对话框的活动实现此方法,然后随心所欲地调用showDialog(int id)
。
发布于 2012-12-29 06:35:00
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(title);
alertDialog.setMessage(msg);
alertDialog.setButton(-3, "Text Parsed", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alertDialog.show();
https://stackoverflow.com/questions/5660276
复制相似问题