2012-04-12 47 views
0

hy!动态水平视图查询

我有一个活动,显示用户配置文件(照片,年龄等)。 用户配置文件的计数是动态的(user_ids来自我的web服务)。

该活动将被调用一个额外的(user_id),它会加载网络上的所有数据。

现在我想做一个动态水平视图分页(视图的计数是动态的)。例如我使用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 /安卓/ gdcatalog/PagedViewActivity.java)是很难理解

+0

您可能需要详细说明您遇到的问题。目前尚不清楚为什么你现在拥有的不满意。 – FoamyGuy 2012-04-12 19:08:07

+0

是的,我必须这样说。你有什么将不会工作。请添加此类的完整代码,或阅读viewpager的进一步说明。 – mikepenz 2012-04-12 19:09:40

+0

哦,它不会工作,如果你尝试像这里得到你的PagerAdapter的视图...是否没有方法instiateView或其他什么地方你必须创建特定的视图本身? – mikepenz 2012-04-12 19:11:17

回答

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