我的麻烦是:当我获得新数据时,使用我的自定义适配器的 viewpager 不会更新视图。我发现许多程序员都有同样的错误,所以我尝试了很多建议,但对我没有任何帮助。很累。再一次,阅读我的源代码并帮助我理解为什么我更新视图失败了!这是我的片段适配器:
private class SwipeyTabsPagerAdapter extends FragmentPagerAdapter implements
SwipeyTabsAdapter {
private final Context mContext;
private String[] datas;
public SwipeyTabsPagerAdapter(Context context, FragmentManager fm, String[] ds) {
super(fm);
this.mContext = context;
datas=ds;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public Fragment getItem(int position) {
Log.e("new item:", datas[position]);
return SwipeyTabFragment.newInstance(datas[position]);
}
@Override
public int getCount() {
return datas.length;
}
public TextView getTab(final int position, SwipeyTabs root) {
TextView view = (TextView) LayoutInflater.from(mContext).inflate(
R.layout.swipey_tab_indicator, root, false);
view.setText(datas[position]);
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mViewPager.setCurrentItem(position);
}
});
return view;
}
}
这是我设置适配器的地方:
SwipeyTabsPagerAdapter adapter = new SwipeyTabsPagerAdapter(getApplicationContext(), getSupportFragmentManager(),dicts);
mViewPager.setAdapter(adapter);
mTabs.setAdapter(adapter);
mViewPager.getAdapter().notifyDataSetChanged();
通过logcat,可以清楚的看到:只有第一次,newItem被处理,所以视图不能更新。