0

我面临一个奇怪的问题。我在我的一个 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 时,它不会从修改后的全局对象中选择值。它继续显示最初传递的“术语”对象的值。(在本例中为“123”)

我尝试在第一次显示 AlertDialog 后将其关闭。但似乎没有帮助。不知道我在这里缺少哪一块拼图。

4

0 回答 0