Вкладки ListView SimpleCursorAdapter FragmentPagerAdapter - PullRequest
0 голосов
/ 12 октября 2019

Я долго думал о том, как представить эту проблему. Я думал, что кода слишком много, но я могу описать его просто. И что это, вероятно, предупредит кого-то о том, где может быть проблема.

Android Studio 3.5.1.

Я создал простой AppCompatActivity, которое загружает новую вкладку всякий раз, когда пользователь нажимаетКнопка «+» в меню. PagerAdapter загружает новый фрагмент с помощью ListView, поддерживаемого SimpleCursorAdapter. Этот тестовый код загружает таблицу (TabID, Name, Count) с фиктивными данными для 20 строк, подключает ее и отображает данные. Все идет нормально. Одна вкладка загружена с ListView фиктивных данных, показывающих имя и количество в файле макета ListViewItem. Здорово. Подключил событие onItemClick для ListView во фрагменте, чтобы, когда пользователь щелкает строку, в базе данных увеличивается счетчик для правильного TabID, затем я обновляю Cursor, вызываю adaptor.changeCursor (), а затем адаптер. notifyDataSetChanged (). Это прекрасно работает. Каждое нажатие на строку увеличивает счетчик в строке и отображает его.

Теперь я нажимаю «+», чтобы добавить свою вторую вкладку. Появляется новая вкладка, загружаются фиктивные данные, и поле счетчика для каждой строки равно нулю. Я могу провести пальцем влево / вправо назад и вперед между вкладками, щелкая строки и увеличивая количество. Счет ведется и отображается правильно.

Вот здесь и начинается проблема. Я снова нажимаю «+», чтобы добавить третью вкладку. Он загружен фиктивными данными и счетное поле установлено в ноль. Хороший. Проведите обратно к вкладке № 2, и все поля, которые я увеличил, запомнят их количество. Однако проведите пальцем по вкладке №1, и все счета будут потеряны! Вернуться к нулю. Перейдите на вкладку № 2, все счета есть. Перейдите на вкладку № 3, и все показатели вернутся к нулю. Кажется, что если у меня есть 3 или более вкладок, и идти вперед и назад между соседними вкладками;Нет проблем. Но если я вкладываю от 1 до 3, счет в таб № 1 теряется;и наоборот, если у меня Tab от 3 до 1, счетчики в Tab # 3 будут потеряны.

Я надеюсь, что я сделал это как можно более четким и кратким, и что кто-то знает, почему это может быть не так на Tab #3 +.

...