Форум программистов, компьютерный форум CyberForum.ru

ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу - Android

Восстановить пароль Регистрация
 
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
17.10.2014, 14:09     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу #1
Есть активити с ViewPager, в который подгружается фрагмент, состоящий из ListView.
ListView (с TextView и CheckBox) заполняется из БД через кастомный SimpleCursorAdapter.
На первой странице у меня находится Избранное. На следующих - списки с CheckBoxами.
Так вот, при нажатии CheckBoxа (чекаю запись в БД) на второй странице - этот item должен появиться в Избранном, но когда листаю налево его там нет.
Он появляется только при новом запуске или когда пролистну направо на 3-ю стр. и обратно (это понятно, т.к. ViewPager одновременно грузит только соседние страницы, а 3-ю уже заново).
Как из самого адаптера обновить соседнюю страницу?
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        super.bindView(view, context, cursor);
        
        final int pos = cursor.getPosition();
        final long id = getItemId(pos);
 
        /*************** Установка значений чекбоксы ***************/   
        final CheckBox checkbox = (CheckBox)view.findViewById(R.id.checkBox1);
        if (pageNumber == PAGE_FAVORITES)   
            checkbox.setVisibility(View.GONE);
        else
            checkbox.setChecked(itemChecked.get(cursor.getPosition()));
        /*************** Слушаем чекбоксы ***************/  
        checkbox.setOnClickListener(new OnClickListener() { 
            public void onClick(View v) {           
                itemChecked.set(pos, checkbox.isChecked()); // запоминаю чекбокс                
                db.setCheck(pageNumber, id, checkbox.isChecked()); // меняю значение в БД
                
                notifyDataSetChanged(); // не обновляет           
                callback.setNewVersion(null, null); // не обновляет
                onContentChanged(); // не обновляет             
            }
        });
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2014, 14:09     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу
Посмотрите здесь:

Прикрутить RadioGroup к ListView(SimpleCursorAdapter) Android
Получение данных с SimpleCursorAdapter Android
SimpleCursorAdapter(ListView заполняется данными только после прокрутки скрола) Android
Как обновить viewpager или listfragment? Android
ListView, База данных и SimpleCursorAdapter - onItemClick срабатывает только после добавления данных Android
Android Обновление fragment из другого fragment
Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter Android
Вывод из базы данных в ListView через SimpleCursorAdapter Android
Android Каков новый аналог устаревшего SimpleCursorAdapter?
Не обновляется список после добавления item'a на страницу ViewPager? Android
Android AsyncTask в Fragment и viewPager
SimpleCursorAdapter Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
17.10.2014, 18:43     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу #2
Можно повесить слушатель на первый фрагмент и вызывать у него update при изменении состояния чекбоксов
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
17.10.2014, 19:47  [ТС]     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу #3
Gabberr, у меня нет первого фрагмента, если я правильно понимаю, он всего один:
Java
1
2
3
4
5
6
7
8
// ActivityMain.java
...
pager = (ViewPager) findViewById(R.id.pager);
pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
pager.setAdapter(pagerAdapter);
 
// PageFragment.java
public class PageFragment extends Fragment
А в pager уже формируются странички.
Надо нажав на чекбокс на 2-й стр. добавить/удалить запись на 1-й стр., т.е. как то найти фрагмент.offset(-1) и обновить данные в нем.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
19.10.2014, 15:05  [ТС]     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу #4
Вобщем сделал, правильно или нет не знаю, но все работает.
Java
1
2
3
4
5
6
FragmentManager manager = getFragmentManager();
Fragment fragment =  manager.getFragments().get(0);   
View v = (View) fragment.getView();
ListView listview = (ListView) v.findViewById(R.id.listView1);
...
listview.setAdapter(newAdapter);
Yandex
Объявления
19.10.2014, 15:05     ViewPager, Fragment и SimpleCursorAdapter, обновить соседнюю страницу
Ответ Создать тему
Опции темы

Текущее время: 18:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru