我正在制作一款小游戏而且我试图展示一个AlertDialog,问题是,当用户点击一个选项时,AlertDialog不会消失。
我使用loopers所以当我的AlertDialog出现时以及用户点击&#34时取消"我的游戏线程停止(looper)游戏线程再次运行,但对话框在顶部,用户无法保持播放。
public void alerta(){
Looper.prepare();
myHandler = new Handler();
AlertDialog.Builder alertadd = new AlertDialog.Builder(_context);
LayoutInflater factory = LayoutInflater.from(_context);
final View view = factory.inflate(R.layout.custom_dialog, null);
alertadd.setView(view);
alertadd.setNeutralButton("Tomar Foto", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
stops++;
Toast.makeText(_context.getApplicationContext(), "Tomaste Foto", Toast.LENGTH_SHORT).show();
}
});
alertadd.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
System.out.println("Stops = "+stops);
stops++;
Toast.makeText(_context.getApplicationContext(), "Cancelar", Toast.LENGTH_SHORT).show();
myHandler.getLooper().quit();
dlg.dismiss();
}
});
alertadd.show();
Looper.loop();
}
答案 0 :(得分:0)
不确定它是否会有所帮助,但请尝试
dlg.cancel();
或看看这个。在我的情况下它完全正常:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.a))
.setCancelable(false)
.setPositiveButton(getString(R.string.b), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
})
.setNegativeButton(getString(R.string.c), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
答案 1 :(得分:0)
应该是alertadd.dismiss();
。而不是dlg.dismiss();
试试吧。如果不让我知道......
答案 2 :(得分:0)
您必须先创建警告对话框,然后在onClick方法中使用它的dismiss()方法:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog alert = builder.create();
builder.setMessage(getString(R.string.a))
.setCancelable(false)
.setPositiveButton(getString(R.string.b), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
})
.setNegativeButton(getString(R.string.c), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
alert.dismiss();
}
});
alert.show()