私は奇妙な問題に直面しています。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を閉じようとしました。しかし、役に立たないようです。ここで欠けているパズルのピースがわかりません。