我需要一些帮助来了解如何将ViewFlow
的当前实现更改为android v4.ViewPager
。到目前为止,我正在使用数据填充ArayLists<?>
的观点。现在我需要使用与我一样的方式(如果可能的话),并使用Android SDK中的ViewPager。任何建议都会很好理解它是如何工作的,因为我在互联网上找到的例子都是使用标签等,但我不需要标签。
以下是我之前使用适配器的方式:
public class WebViewAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<String> name;
private ArrayList<String> date;
private ArrayList<String> bodies;
private static LayoutInflater inflater = null;
public WebViewAdapter(Activity a, ArrayList<String> names, ArrayList<String> dates, ArrayList<String> body) {
this.activity = a;
this.name = names;
this.date = dates;
this.bodies = body;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return name.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView title, date;
public WebView body;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.article_layout, null);
holder = new ViewHolder();
holder.title = (TextView) vi.findViewById(R.id.article_title);
holder.date = (TextView) vi.findViewById(R.id.date);
holder.body = (WebView) vi.findViewById(R.id.body);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
holder.title.setText(name.get(position).toString());
holder.date.setText(date.get(position).toString());
holder.body.loadDataWithBaseURL(null, bodies.get(position).toString(), "text/html", "utf-8", null);
return vi;
}
}
我正在使用它:
WebViewAdapter adapter = new WebViewAdapter(this, titles, dates, bodies);
viewFlow.setAdapter(adapter, pos);
现在我需要与ViewPager实现相同的结果,因为我正在移动我的所有项目以使用新SDK API中的Fragments和东西。
任何建议/建议/帮助我如何实现这一目标?
答案 0 :(得分:2)
而不是你的适配器实现FragmentPagerAdapter。像对ViewFlow一样调用ViewPager并在其上设置创建的适配器。 一切都很相似。唯一的区别 - 适配器实现了fragements和片段膨胀视图。
答案 1 :(得分:0)
不确定你想要达到的目标。
如果要使用片段而不是视图,请检查actionBarSherlock个样本中的“tabs and pager”示例(在片段项目中)。它甚至与旧的Android版本兼容(在引入片段之前)。