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