Как обновить просмотр данных пейджера? - PullRequest
0 голосов
/ 29 мая 2019

Когда я получаю данные из службы, я перезагружаю все данные в списке массивов и пересылаю в адаптер, но адаптер отображает мои старые данные. Я передаю новые данные в адаптер, когда я печатаю список массивов в адаптере. Показываю старые данные. Когда я загружаю новые данные очищаю и всю базу данных тоже.

Я загружаю данные в пейджер представления, поэтому создаю newInstance.so, приведенный ниже код, получаю данные из сервиса и сохраняю их в arraylist и передаю в адаптер

adapter = new PagerAdapter(activity.getSupportFragmentManager(),"TotalCount",firstCountArrayList,secondAcoountArrayList,totalCountArrayList);
        pager.setPageMargin(-400);
        pager.setAdapter(adapter);
        adapter.notifyDataSetChanged();
        pager.setOffscreenPageLimit(firstCountArrayList.size());

        tabs.setViewPager(pager,selected);

В PagerAdapter я получил старые данные о массивах

public class PagerAdapter extends FragmentPagerAdapter {

    String TotalCount = "";
    ArrayList<String> firstCountArrayList,secondAcoountArrayList,totalCountArrayList;

    public PagerAdapter(FragmentManager fm, String TotalCount, ArrayList<String> firstCountArrayList, ArrayList<String> secondAcoountArrayList, ArrayList<String> totalCountArrayList
                        ) {
        super(fm);
        //super(fm);
        this.TotalCount=TotalCount;


        this.firstCountArrayList=firstCountArrayList;
        this.secondAcoountArrayList=secondAcoountArrayList;   
this.totalCountArrayList=totalCountArrayList;

    }

    @Override
    public CharSequence getPageTitle(int position) {
        return firstCountArrayList.get(position);
    }

    @Override
    public int getCount() {
        return firstCountArrayList.size();
    }
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
    @Override
    public Fragment getItem(int position) {




        Log.e(TAG," PagerAdapter firstCountArrayList==>"+firstCountArrayList.toString());
        return NewPageInstance.newInstance(position,firstCountArrayList,secondAcoountArrayList,totalCountArrayList);

после того, как все данные передаются в NewPageInstance и отображаются в TextView как

   public static NewPageInstance newInstance(int position, String totalCount, ArrayList<String> firstCountArrayList, ArrayList<String> secondAcoountArrayList, ArrayList<String> totalCountArrayList) {

    totalCount=totalCount;
    firstCountArrayList=firstCountArrayList;
    secondAcoountArrayList=secondAcoountArrayList;
    totalCountArrayList=totalCountArrayList;
    }

и все данные отображают текстовое представление

Это работает только в первый раз. Не обновлять данные просмотра пейджера.

1 Ответ

0 голосов
/ 29 мая 2019

добавьте приведенный ниже код в адаптер пейджера просмотра: -

public int getItemPosition(Object object) {
return POSITION_NONE;

}

или смените прослушиватель пейджера просмотра, уведомите адаптер пейджера просмотра: -

mPagerAdapter.notifyDataSetChanged();
...