Android 关闭弹出窗口

Android close 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();
}

感谢您的帮助:)

请不要在没有评论的情况下投反对票!

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();
}