Эквиваленты AlertDialog setTitle() и setMessage в FragmentDialog

Я переписываю существующее приложение для Honeycomb и столкнулся с проблемой. В существующем приложении мы создаем AlertDialog со значениями заголовка и сообщения по умолчанию, а затем при необходимости заменяем их позже. Чтобы заменить их, мы используем setTitle() и setMessage():

AlertDialog dialog = getDialog();
if (some condition) {
    dialog.setTitle(R.string.error1);
    dialog.setMessage(getResources().getString(R.string.error1_msg));
}
else {
    dialog.setTitle(R.string.error2);
    dialog.setMessage(getResources().getString(R.string.error2_msg));
}

Однако теперь, когда мы используем DialogFragment, нет метода для setTitle() или setMessage(), поэтому мы не можем изменить его после его создания. Есть ли обходной путь для этого случая, или нам не повезло?


person CACuzcatlan    schedule 30.06.2011    source источник
comment
Интересно, придется ли вам расширять DialogFragment и писать свои собственные методы доступа. Перепроверю, чтобы увидеть, что люди говорят.   -  person sgarman    schedule 30.06.2011


Ответы (1)


Вы должны расширить DialogFragment, чтобы предоставить контент. Примеры и другие параметры см. в документации.

person Spidy    schedule 30.06.2011
comment
Я расширил DialogFragment, но класс DialogFragment не имеет возможности установить заголовок или сообщение вне onCreateDialog(). - person CACuzcatlan; 30.06.2011
comment
Если я создам метод доступа в моем фрагменте, который расширяет DialogFragment, я могу установить заголовок, но нет способа установить сообщение. К сожалению, я думаю, что это ограничение DialogFragments. Я не смог найти работу вокруг. - person CACuzcatlan; 30.06.2011
comment
Я смог сделать это в классе, расширяющем DialogFragment. public void setTitle(int title) { getDialog().setTitle(title); } public void setMessage(CharSequence message) { ((AlertDialog)getDialog()).setMessage(message); } - person CACuzcatlan; 01.07.2011
comment
Рад, что вы решили. Да, вы можете добавить любые методы, необходимые для обновления содержимого фрагмента диалога. - person Spidy; 01.07.2011