Проблема с изменением названия активности на ActivityResult - PullRequest
0 голосов
/ 12 января 2011

У меня есть простое приложение, основанное на демонстрационном приложении «Блокнот», и когда пользователь просматривает / редактирует заметку, он может запустить диалоговое действие (TitleEditor), которое позволяет ему изменить заголовок заметки.В настоящее время при просмотре / редактировании заметки текущий заголовок заметки отображается как заголовок действия.

Итак, я запускаю диалоговое действие TitleEditor с помощью startActivityForResult (), а в onActivityResult () я получаюновый заголовок обратно, без проблем.

Эта проблема связана с обновлением заголовка представления / редактирования заметок (активной активности) ... с помощью setTitle () в onActivityResult () с данными, переданными обратно, похоже, установленовнутренний заголовок (последующий вызов getTitle () показывает, что новый заголовок установлен), но фактический заголовок пользовательского интерфейса не обновляется, пока действие не будет закрыто, а затем перезапущено.

Я использовал setTitle() в onResume (), и это работало как шарм, но не работает здесь ... может быть, из-за активности, являющейся «активной»?Есть ли способ изменить название активной деятельности?

Спасибо,

Пол

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Найдена проблема ... Я изменял заголовок заметки в наборе данных вызываемой активности, затем устанавливал новый заголовок в onActivityResult (), НО забыл также обновить курсор на активности ..., поэтому в onResume () (вызываемом после завершения операции редактирования заголовка) я затем установил заголовок () из курсора, который не был обновлен для отражения новых данных.

Вызов mCursor.requery () для успешного переименования приводит к тому, что onActivityResult () исправляет его.

0 голосов
/ 12 января 2011

Я не уверен, что было бы по-другому в onActivityResult (), но я только что попробовал это в тестовой деятельности, с которой я играю.

Использование setTitle("My New Title"); в обработчике onClick() для кнопки в моей деятельности немедленно меняет заголовок.

Единственное, о чем я могу подумать, это если вы переопределили onTitleChanged(...) и вы не звоните super.onTitleChanged(...) изнутри.

...