AlertDialogを表示するには、リクエストごとに変更される可能性がある1つのオプションが必要です。たとえば、一度に「連絡先に追加」オプションを表示したい場合は、「連絡先から削除」する必要があります。Android AlertDialogでリクエストごとに動的にテキストが変更される
私のコードは初めて動作しますが、Androidは次回にonCreateDialogを実行しないようにAlertDialogをキャッシュしているようです。したがって、オプションはもう変わりません。このキャッシングを防ぐことはできますか、またはオプションを変更する別の方法がありますか?
私はSDK 1.5を使用していますが、1.1を使用しています。
@Override
protected Dialog onCreateDialog(final int id) {
...
String add_remove_contact = res.getString(R.string.profile_add_to_contacts);
if (user.getContacts().contains(profileID)) {
add_remove_contact = res.getString(R.string.profile_remove_from_contacts);
// TODO: this string is not changed when contact status changes
}
final CharSequence[] items = {res.getString(R.string.view_profile),
res.getString(R.string.profile_send_message),
add_remove_contact};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
...
return builder.create();
}
パフォーマンス上の理由から、ダイアログは一度作成する必要があります(比較的高価な操作です)。毎回isを再作成するのではなく、onPrepareDialogメソッドを使用して、表示されているようにダイアログを変更することができます(次の解説の説明を参照)。 – ChrisV
まだここに来ている人にとって、 'removeDialog'と' showDialog'は廃止予定です。 Androidが 'Fragments'に移行したので、' DialogFragment'の使用が推奨されました。詳細については、公式のドキュメントへのリンクがあります:http://developer.android.com/reference/android/app/DialogFragment.html –
「removeDialog」は推奨されていません。ちょうど... –