Я использую ViewPager из библиотеки совместимости. Я с удовольствием получил его, отображая несколько просмотров, которые я могу пропустить.
Однако мне сложно понять, как обновить ViewPager новым набором представлений.
Я пробовал всевозможные вещи, такие как вызов mAdapter.notifyDataSetChanged(), mViewPager.invalidate() даже создание нового адаптера каждый раз, когда я хочу использовать новый список данных.
Ничего не помогло, текстовые изображения остаются неизменными от исходных данных.
Update: Я сделал небольшой тестовый проект, и мне почти удалось обновить представления. Я введу класс ниже.
То, что не отображается, однако, является вторым видом, "B" остается, он должен отображать "Y" после нажатия кнопки обновления.
public class ViewPagerBugActivity extends Activity {
    private ViewPager myViewPager;
    private List<String> data;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        data = new ArrayList<String>();
        data.add("A");
        data.add("B");
        data.add("C");
        myViewPager = (ViewPager) findViewById(R.id.my_view_pager);
        myViewPager.setAdapter(new MyViewPagerAdapter(this, data));
        Button updateButton = (Button) findViewById(R.id.update_button);
        updateButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                updateViewPager();
            }
        });
    }
    private void updateViewPager() {
        data.clear();
        data.add("X");
        data.add("Y");
        data.add("Z");
        myViewPager.getAdapter().notifyDataSetChanged();
    }
    private class MyViewPagerAdapter extends PagerAdapter {
        private List<String> data;
        private Context ctx;
        public MyViewPagerAdapter(Context ctx, List<String> data) {
            this.ctx = ctx;
            this.data = data;
        }
        @Override
        public int getCount() {
            return data.size();
        }
        @Override
        public Object instantiateItem(View collection, int position) {
            TextView view = new TextView(ctx);
            view.setText(data.get(position));
            ((ViewPager)collection).addView(view);
            return view;
        }
        @Override
        public void destroyItem(View collection, int position, Object view) {
             ((ViewPager) collection).removeView((View) view);
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }
        @Override
        public Parcelable saveState() {
            return null;
        }
        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
        }
        @Override
        public void startUpdate(View arg0) {
        }
        @Override
        public void finishUpdate(View arg0) {
        }
    }
}
