我想解除AlertDialog窗口,但是在点击“确定”或“取消”按钮时却没有,但是在调用某个操作时。 实际上,我想用onResume函数创建对话框:
@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事件做到这一点的方式,这不是我想做的事情。 有可能做这样的事吗?如果没有,对话框之王允许我这样做?
谢谢!
答案 0 :(得分:6)
像这样获取alertDialog
AlertDialog dialog;
alert = new AlertDialog.Builder(this);
dialog=alert.create().show();
然后致电
private void dismissMyDiag() {
dialog.dismiss();
}
答案 1 :(得分:1)
尝试这种方式:
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();
}
});
}
});
答案 2 :(得分:0)
我知道这是一个古老的问题,但希望它能对某些人有所帮助。 您还可以为警报对话框创建自定义类并访问其漏洞项目 可以显示和隐藏任何地方
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不为null检查其他必要的应用程序是否可能崩溃