AlertDialog.Builder 动态设置消息

AlertDialog.Builder dynamically setMessage

我正在尝试将消息动态设置为 AlertDialog.Builder, 但是当我 运行 应用程序时,没有显示任何消息。我希望消息根据用户在某些 editText 小部件上键入的文本进行更改。 任何建议表示赞赏。

private AlertDialog.Builder builder;
private AlertDialog dialog;
private CharSequence alertMessage;
    // set AlertMessage
public CharSequence setAlertMessage() {
    if (editText0.getText().toString().equals("το αγόρι") &&
            editText1.getText().toString().equals("το κορίτσι") &&
            editText2.getText().toString().equals("ένας άντρας") &&
            editText3.getText().toString().equals("μια γυναίκα")) {
        alertMessage = ("Συγχαρηρήρια! Πάτησε ΟΚ για να\nπροχωρήσεις στην επόμενη διεπαφή");
    } else if (editText0.getText().toString().equals("το αγορι") &&
            editText1.getText().toString().equals("το κοριτσι") &&
            editText2.getText().toString().equals("ενας αντρας") &&
            editText3.getText().toString().equals("μια γυναικα")) {
        alertMessage = ("Μάλλον ξέχασες τους τόνους!\nΞαναπροσπάθησε");
    } else if (editText2.getText().toString().equals("o άντρας") || editText2.getText().toString().equals("ο αντρας") &&
            editText3.getText().toString().equals("η γυναίκα") || editText3.getText().toString().equals("η γυναικα")) {
        alertMessage = ("Μάλλον ξέχασες τις αόριστες αντωνυμίες\n(ενας , μια)\nΠάτησε ΟΚ για να ξαναπροσπαθήσεις");
    }
    return alertMessage;
}
dialog = builder.create();
        basicsBtn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (editText0.getText().toString().equals("το αγόρι") &&
                    editText1.getText().toString().equals("το κορίτσι") &&
                    editText2.getText().toString().equals("ένας άντρας") &&
                    editText3.getText().toString().equals("μια γυναίκα")) {
                dialog.show();
            }
            else if (editText0.getText().toString().equals("το αγορι") &&
                    editText1.getText().toString().equals("το κοριτσι") &&
                    editText2.getText().toString().equals("ενας αντρας") &&
                    editText3.getText().toString().equals("μια γυναικα")) {
                dialog.show();
            }
            else if (editText2.getText().toString().equals("o άντρας") || editText2.getText().toString().equals("ο αντρας") &&
                    editText3.getText().toString().equals("η γυναίκα") || editText3.getText().toString().equals("η γυναικα")) {
                dialog.show();
            }
            else {
                Toast.makeText(getApplicationContext(),"Έκανες κάποιο λάθος!Ξαναπροσπάθησε.",Toast.LENGTH_SHORT).show();
            }
        }
    });
builder.setMessage(setAlertMessage());

构建对话框时,您必须通过方法 create()Builder class 创建它们,然后您必须通过方法 show()Dialog class。

您必须更改在单击后显示对话框的方式:

 basicsBtn2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (editText0.getText().toString().equals("το αγόρι") &&
                editText1.getText().toString().equals("το κορίτσι") &&
                editText2.getText().toString().equals("ένας άντρας") &&
                editText3.getText().toString().equals("μια γυναίκα")) {
            new AlertDialog.Builder(YourActivity.this).setMessage(setAlertMessage()).create().show();
        }
        else if (editText0.getText().toString().equals("το αγορι") &&
                editText1.getText().toString().equals("το κοριτσι") &&
                editText2.getText().toString().equals("ενας αντρας") &&
                editText3.getText().toString().equals("μια γυναικα")) {
            new AlertDialog.Builder(YourActivity.this).setMessage(setAlertMessage()).create().show();
        }
        else if (editText2.getText().toString().equals("o άντρας") || editText2.getText().toString().equals("ο αντρας") &&
                editText3.getText().toString().equals("η γυναίκα") || editText3.getText().toString().equals("η γυναικα")) {
            new AlertDialog.Builder(YourActivity.this).setMessage(setAlertMessage()).create().show();
        }
        else {
            Toast.makeText(getApplicationContext(),"Έκανες κάποιο λάθος!Ξαναπροσπάθησε.",Toast.LENGTH_SHORT).show();
        }
    }