我有一个AlertDialog.Builder
里面有一个按钮,我想在点击它时忽略该对话框。
但是没有.dismiss()
或.cancel()
方法。
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inf.inflate(R.layout.map_window, null);
window = new AlertDialog.Builder(activity);
window.setCancelable(true);
buttonStar = (ImageButton)layout.findViewById(R.id.buttonStar);
buttonStar.setBackgroundResource(R.drawable.star);
buttonStar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//finishing window;
}
});
window.setPositiveButton("Volver", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int wichButton) {
}
});
window.show();
}
答案 0 :(得分:4)
AlertDialog.Builder#show
会返回AlertDialog
本身,所以只需获取从show
返回的AlertDialog本身,然后调用dismiss:
AlertDialog dialog;
//...
dialog = window.show();
答案 1 :(得分:2)
尝试从对话框对象中取消它。创建一个对话框对象,如下所示:
Dialog dialog = window.create();
dialog.cancel()
答案 2 :(得分:0)
找到AlertDialog的波纹管代码。使用新的DialogInterface.OnClickListener()而不是onClick()。
AlertDialog ad = new AlertDialog.Builder(MainCatalogueActivity.this)
.setTitle("Server Response Error")
.setMessage("some message ")
.setIcon(R.drawable.ic_menu_close_clear_cancel)
.setNegativeButton("Close", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}).create();
ad.show();