如何重新实例化ViewPager? 我的适配器看起来像这样:
private class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return NUM_AWESOME_VIEWS;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater)cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.search_result, null);
//
TextView title = (TextView)layout.findViewById(R.id.search_result_title);
TextView body = (TextView)layout.findViewById(R.id.search_result_body);
TextView byline = (TextView)layout.findViewById(R.id.search_result_byline);
TextView day = (TextView)layout.findViewById(R.id.search_result_date_day);
TextView month = (TextView)layout.findViewById(R.id.search_result_date_month);
TextView year = (TextView)layout.findViewById(R.id.search_result_date_year);
TextView page = (TextView)layout.findViewById(R.id.search_result_page);
TextView page_max = (TextView)layout.findViewById(R.id.search_result_page_max);
//
title.setText(list_title.get(position).toString());
body.setText(list_body.get(position).toString());
day.setText(list_day.get(position).toString());
month.setText(list_month.get(position).toString());
year.setText(list_year.get(position).toString());
byline.setText(list_byline.get(position).toString());
page.setText(Integer.toString(position+1));
page_max.setText(Integer.toString(NUM_AWESOME_VIEWS));
//
((ViewPager) collection).addView(layout,0);
return layout;
}
@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==((View)object);
}
@Override
public void finishUpdate(View arg0) {}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {}
}
我找到了将一堆数据重新加载到列表中的方法,但是如何从onPostExecute(Asynctask)重新加载所有页面。
答案 0 :(得分:3)
将以下内容添加到MyPagerAdapter类:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
并致电
myPager.getAdapter().notifyDataSetChanged();
来自AsyncTask的onPostExecute
答案 1 :(得分:0)
我认为调用notifyDataSetChanged();使用适配器引用将解决您的问题。