0

私は奇妙な問題に直面しています。Activity クラスの 1 つでグローバル変数として定義されたオブジェクト名 '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