如何在没有用户交互的情况下关闭活动的警报对话框?
问题描述:
在我的Android应用程序中,我创建了一个用于处理常规功能的公用类,例如显示警告对话框,操作日期函数。我显示警报对话框只是通过传递文本消息来调用方法。我的问题是如何以编程方式关闭另一个类中的警告对话框?如何在没有用户交互的情况下关闭活动的警报对话框?
我的代码流:
UtillClass2
是具有在应用程序中使用common methods
的类。
public class UtillClass2 {
public static void showAlert(Context context, String str) {
final Dialog dialog = new Dialog(context,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.common_alert);
dialog.setCancelable(true);
Button ok = (Button) dialog.findViewById(R.id.common_button);
TextView alerttxt = (TextView) dialog.findViewById(R.id.common_text1);
alerttxt.setText(str);
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
而且我通过调用这样
UtillClass2.showAlert(QNowActivity.this, getResources()
.getString(R.string.available_err));
我的问题叫从我Activity
警告对话框是我想通过编程方式从活动到关闭警告对话框?
答
科瑞您的对话实例的全局实例如下图所示:
private Dialog mDialog; // global class variable .
关闭该对话框与mDialog.dismiss();
答
请尝试下面的代码,我瘦是对你有帮助。
public class UtilDialog {
public final static int ALERT_DIALOG = 1;
Context context;
AlertDialog alertDialog;
public UtilDialog(Context context) {
this.context = context;
Resources resources = context.getResources();
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(resources.getString(R.string.message));
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE,
resources.getString(R.string.ok),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}
public void showDialog(String message, int dialogCode) {
switch (dialogCode) {
case ALERT_DIALOG:
alertDialog.setMessage(message);
alertDialog.show();
break;
}
}
public void dismissDialog(int dialogCode) {
switch (dialogCode) {
case ALERT_DIALOG:
alertDialog.dismiss();
break;
}
}
}
,并在另一个类
UtilDialog utilDialog=new UtilDialog(this);
utilDialog.showDialog(
getResources().getString(R.string.all_fields),
UtilDialog.ALERT_DIALOG);
utilDialog.dismissDialog(UtilDialog.ALERT_DIALOG);
答
public class UtillClass2 {
Dialog dialog;
public static void showAlert(Context context, String str) {
dialog = new Dialog(context,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.common_alert);
dialog.setCancelable(true);
Button ok = (Button) dialog.findViewById(R.id.common_button);
TextView alerttxt = (TextView) dialog.findViewById(R.id.common_text1);
alerttxt.setText(str);
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
public static void hideAlert()
{
if(dialog != null)
{
dialog.dismiss();
}
}
}
你应该返还对话框,因为你怎么在创建后它可以访问它使用此警报dialgon? – tyczj
你可以请将applicationcontext传递给对话框 –