2012-01-17 7 views
2

Я создаю приложение для Android, которое в основном является читателем RSS, причем разные темы разделены на вкладки с помощью TabHost на основе активности.Проблема с программированием программы

У меня есть команда меню под названием «Обновить», которая в основном запускает AsyncTask и анализирует RSS-каналы и сохраняет каналы в таблице SQLLite на устройстве.

Когда пользователь нажимает на вкладку, я передаю идентификатор темы в действие, чтобы вытаскивать только те предметы из базы данных. В onResume это когда я обновляю фиды, поэтому при нажатии на каждую вкладку они получают самые последние элементы.

Проблема заключается в том, что когда пользователь нажимает на элемент RSS, он открывает элемент в своем браузере, но когда он нажимает кнопку «Назад», он должен помнить о своей позиции. Тем не менее, нажатие назад отменяет onResume и обновляет каналы, поэтому он автоматически прокручивает назад вверх.

Может быть очевидное решение, которое мне не хватает, но мне сложно найти подходящее решение.

ответ

0

В вашем методе onPause() зарегистрируйте, где пользователь ищет, чтобы ваш метод onResume() мог позиционировать представление в том месте, где остановился пользователь.

0

Решение может сохранить состояние активности на onStop() события, а затем использовать onRestart() или onStart() события, в зависимости от поведения вы пытаетесь достичь, чтобы автоматически показывать список на последнем выбранном элементе.

enter image description here

Ссылки: http://developer.android.com/reference/android/app/Activity.html

0

Если это помогает любому, это то, что я сделал, чтобы заставить его работать. В событии onListItemClick я использую getFirstVisiblePosition() в списке, чтобы сохранить позицию в переменной-члене, а затем onResume я использую setSelection (lastPosition) для установки позиции.

Смежные вопросы