Android 不单击按钮即可关闭AlertDialog
我想关闭AlertDialog窗口,但不是在单击“确定”或“取消”按钮时关闭,而是在调用操作时关闭。 事实上,我想用这种方式在onResume函数中创建对话框:Android 不单击按钮即可关闭AlertDialog,android,android-alertdialog,Android,Android Alertdialog,我想关闭AlertDialog窗口,但不是在单击“确定”或“取消”按钮时关闭,而是在调用操作时关闭。 事实上,我想用这种方式在onResume函数中创建对话框: @Override public void onResume() { super.onResume(); alert = new AlertDialog.Builder(this); alert.setTitle("Stay stuck to a tag"); alert.create().show();
@Override
public void onResume() {
super.onResume();
alert = new AlertDialog.Builder(this);
alert.setTitle("Stay stuck to a tag");
alert.create().show();
}
然后在调用函数时退出它,如
private void dismissMyDiag() {
alert.dismiss();
}
当然,我已经看到了通过onclick事件实现这一点的方法,这不是我想要做的。
有可能做这样的事吗?若并没有,那个么哪个对话框之王允许我这么做呢
谢谢大家! 像这样获取alertDialog
AlertDialog dialog;
alert = new AlertDialog.Builder(this);
dialog=alert.create().show();
然后打电话
private void dismissMyDiag() {
dialog.dismiss();
}
试着这样做:
final AlertDialog d = new AlertDialog.Builder(context)
.setView(v)
.setTitle(R.string.my_title)
.setPositiveButton(android.R.string.ok,
new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
//Do nothing here. We override the onclick
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
d.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Do something
//Dismiss once everything is OK.
d.dismiss();
}
});
}
});
我知道这是一个老问题,但我希望这能帮助一些人。 您还可以为“警报”对话框创建自定义类并访问该类 可以显示和隐藏任何地方
package (Your_Pakage_Name);
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatDialogFragment;
public class AlertDailogbox extends AppCompatDialogFragment {
String Title = null;
String Msg = null;
String TAG = "Alert Dialog Box";
public AlertDailogbox(String title, String msg) {
Title = title;
Msg = msg;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(Title)
.setMessage(Msg)
.setIcon(R.drawable.ic_alert) //set icon if you want
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
拜访您的项目(活动)
创建alertDialog类的全局变量
private AlertDailogbox alertDailogbox;
用于显示对话框的函数
private void showMsgDailog(String Title,String Msg){
alertDailogbox = new AlertDailogbox(Title,Msg);
alertDailogbox.setCancelable(false);
alertDailogbox.show(getSupportFragmentManager(),"alert Dailog");
}
解雇结束
if(alertDailogbox != null)
alertDailogbox.dismiss();
alerDailogeBox不为空检查是否有必要其他明智的应用程序可能崩溃是否存在可能调用dismissMyDiag()的AsyncTask或其他类型的后台进程?该方法何时调用?异步任务?还是在主要活动中?你想过使用线程吗?谢谢,就这样!更准确地说,它类似于alert=newalertdialog.Builder(this);dialog=alert.create();dialog.show();