AlertDialog.Builder动态setMessage

时间:2015-02-25 13:05:13

标签: android alertdialog builder

我正在尝试动态设置消息到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());

1 个答案:

答案 0 :(得分:1)

构建对话框时,必须通过create()类中的方法Builder创建对话框,之后必须通过show()类中的方法Dialog显示它。

点击后,您必须改变显示对话框的方式:

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