hy!
我有一个显示用户个人资料(照片,年龄等)的活动。用户配置文件的计数是动态的(user_ids来自我的网络服务)。
该活动将使用额外的 (user_id) 调用,并从 Web 加载所有数据。
现在我想进行动态水平视图分页(视图计数是动态的)。例如,我使用 http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/,但他只切换布局。
我的代码:
public class MyPagerAdapter extends PagerAdapter{
private int cnt;
public void setCount(int cnt)
{
this.cnt = cnt;
}
public int getCount() {
return cnt;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//View view = inflater.inflate(resId, null);
View v = new View (MyPagerAdapter.this);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
请帮忙
PS:我也使用Greendroid库,但示例代码(https://github.com/cyrilmottier/GreenDroid/blob/master/GDCatalog/src/com/cyrilmottier/android/gdcatalog/PagedViewActivity.java)更难理解
我建议您从以下适配器开始:
private class PhotoSwipeAdapter extends PagedAdapter {
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.paged_view_item, parent, false);
}
((TextView) convertView).setText(Integer.toString(position));
return convertView;
}
}
它更像是你需要的那个。就像你看到的一样,getView 方法返回当前页面的特定视图。你可以用你喜欢的东西填充它。在上面的示例中,它是一个布局文件。您还可以根据代码创建布局,但使用布局文件会更容易!
哦,最后确定这个答案。(没有人知道你发给我的教程,请添加所有资源,即使它们只是链接或更难!只有当您添加所有内容时,我们才能为您提供最好的帮助)-> 你关注的教程不使用 GreenDroid 库,本教程使用 Androids 兼容性库。GreenDroid有一个额外版本的PageAdapter(如果我错了,请纠正我)。您应该始终关注并使用示例应用程序,您可以找到您使用的特定库。阅读教程中的所有详细信息也很重要 ->页面说"水平视图分页基于仅适用于 Android 兼容包 v4 修订版 3 的 API;这些 API 目前在标准 Android SDK 中不可用。"