2012-04-12 52 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中不可用。」