我面临一个奇怪的问题。我在一个Activity类中定义了一个对象名称“term”作为全局变量。我在显示警告对话框的方法中使用此变量。假设我首先将标题设置为123。
term.setTitle("123");
然后我显示警告对话框。显示警告对话框的代码是:
private void displayNoteDialog() {
final CharSequence[] items = {
AgileFlashCardConstants.CREATE_NEW_NOTE,
AgileFlashCardConstants.SHOW_CUSTOM_NOTE,
AgileFlashCardConstants.EDIT_FLASH_CARD + " - " + term.getTitle()
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Note Options");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(AgileFlashCardConstants.CREATE_NEW_NOTE.equals(items[item])) {
createNewNote();
} else if(AgileFlashCardConstants.SHOW_CUSTOM_NOTE.equals(items[item])) {
displayCustomNoteDialog();
} else if(AgileFlashCardConstants.EDIT_FLASH_CARD.equals(items[item])) {
editFlashCard();
}
}
});
builder.setPositiveButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.setIcon(R.drawable.note_icon);
AlertDialog alert = builder.create();
alert.show();
显示并关闭警告对话框后,我的应用程序会修改“字词”以使其具有不同的标题。
term.setTitle("ABC");
问题是下次再次显示AlertDialog时,它不会从修改后的全局对象中选择值。它继续显示最初传递的'term'对象的值。 (在这种情况下'123')
我第一次出现后试图解除AlertDialog。但似乎没有帮助。不知道我在这里错过了哪一块拼图。