Search code examples
androidandroid-viewpager

Android ViewPager not updated


I have ViewPager with one page and Tab's. In AsyncTask i load data, and update ViewPager, but nothing change. In LogCat i checked, i have needed data.

MainClass.java

    mViewPager = (ViewPager) findViewById(R.id.cinema_view_pager);
    mTabPager = new TabPager("Загрузка");
    mViewPager.setAdapter(mTabPager);

    LoadCinema cinema = new LoadCinema(this,0);
    cinema.execute();

TabPager(Adapter).class

public class TabPager extends PagerAdapter{

    private String message = "";

    public TabPager(String msg){
        message = msg;
    }

    @Override
    public int getCount() {
        return 1;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view.equals(object);
    }

    public void update(String msg){
        message = msg;
        notifyDataSetChanged();
    }

    @Override
    public View instantiateItem(View container, int position){
        View v = getLayoutInflater().inflate(R.layout.cinema_layout, null);

        TextView text = (TextView) v.findViewById(R.id.textView1);
        text.setText(message+"Message" +"");

        ((ViewPager) container).addView(v);
        return v;           
    }

    public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }

}  

LoadCinema.class

public void onPostExecute(List<CinemaCategory> result){
    super.onPostExecute(result);
    CinemaCategory cat = result.get(page);  
    cinema.mTabPager.update(cat.getDescription());
}

I tryed with three pages, and when i swype to last page, i haved data and then swype to first page view pager updated.


Solution

  • Now i have Answer, Thank's to this post

    To adapter need add this code

        public int getItemPosition(Object object) {
               return POSITION_NONE;
        }