动态水平视图分页

时间:2012-04-12 18:25:52

标签: android

HY!

我有一个活动,显示用户个人信息(照片,年龄等)。 userprofiles的计数是动态的(user_ids来自我的webservice)。

将使用额外的(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)是更难理解

1 个答案:

答案 0 :(得分:0)

我建议您从以下适配器开始:

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库,Tutorial使用Androids Compatiblity Library。 GreenDroid有一个额外版本的PageAdapter(如果我错了,请纠正我)。您应该始终关注并使用示例应用程序,您可以找到您使用的特定库。阅读教程中的所有细节也很重要 - >该页面显示“水平视图分页基于仅适用于Android兼容性软件包v4,修订版3的API;此时标准Android SDK中不提供这些API。”