Android закрыть PopUp
Как я могу закрыть всплывающее окно при нажатии кнопки?
.dismiss();
а также .cancel();
не работает для меня, или я делаю что-то не так.
//Game Paused PopUp
private void PauseMenu() {
final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
final View popupView = inflater.inflate(R.layout.pause_menu, null);
helpBuilder.setView(popupView);
Button resume = (Button) popupView.findViewById(R.id.resume);
resume.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Close PopUp
}
});
AlertDialog helpDialog = helpBuilder.create();
helpDialog.show();
}
@Override
public void onBackPressed() {
PauseMenu();
}
Спасибо за любую помощь:)
И, пожалуйста, не голосуйте без комментариев!
2 ответа
Решение
private void PauseMenu() {
final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
final View popupView = inflater.inflate(R.layout.pause_menu, null);
helpBuilder.setView(popupView);
Button resume = (Button) popupView.findViewById(R.id.resume);
final AlertDialog helpDialog = helpBuilder.create();
resume.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
helpDialog.dismiss();
}
});
helpDialog.show();
}
@Override
public void onBackPressed() {
PauseMenu();
}
Вам нужно будет сохранить ссылку на диалог, чтобы отклонить его.
Следующее должно работать:
private void displayPauseMenu() { // method names are always lower-case!!
final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
final View popupView = inflater.inflate(R.layout.pause_menu, null);
helpBuilder.setView(popupView);
// this is what you need to dismiss
final AlertDialog helpDialog = helpBuilder.create();
Button resume = (Button) popupView.findViewById(R.id.resume);
resume.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
helpDialog.dismiss();
}
});
helpDialog.show();
}
@Override
public void onBackPressed() {
displayPauseMenu();
}