2014-02-18 41 views
1

我一直在尋找一種方法來刷新viewpager中的gridview,我還沒有找到答案。更具體地說,我的問題是我有一個帶有三個GridView的查看傳呼機。每個gridview由一個數組列表填充,如果數組列表更改,gridview保持不變。我怎樣才能讓它更新?我曾嘗試在適配器上調用notifydatasetchange並且沒有幫助。在viewpager中更新gridview

這裏是我的觀點尋呼機適配器

public class FavoritesViewPager extends FragmentStatePagerAdapter {  
    public FavoritesViewPager(FragmentManager fm) { 
     super(fm); 
    } 
    @Override 
    public Fragment getItem(int i) { 
     UserDatabaseHandler UDH = new UserDatabaseHandler(getActivity()); 
     switch (i) { 
     case 0: 
      ArrayList<Exercise> strengthList = UDH.getFavoriteExercises("strengthexercises"); 
      UDH.close(); 
      return FavoriteExercises.newInstance(strengthList); 
     case 1: 
      ArrayList<Exercise> stretchList = UDH.getFavoriteExercises("stretchingexercises"); 
      UDH.close(); 
      return FavoriteExercises.newInstance(stretchList); 
     case 2: 
      ArrayList<Exercise> warmupList = UDH.getFavoriteExercises("warmupexercises"); 
      UDH.close(); 
      return FavoriteExercises.newInstance(warmupList); 
     default: 
      ArrayList<Exercise> temp = UDH 
        .getFavoriteExercises("warmupexercises"); 
      UDH.close(); 
      return FavoriteExercises.newInstance(temp); 
     } 
    } 
    @Override 
    public int getCount() { 
     return 3; 
    } 
} 

回答

1

如果您的尋呼機只有兩頁,你應該使用FragmentPagerAdapter代碼。您可以通過findFragmentByTag獲取片段,然後調用此片段的更新方法。

String fragmentName = makeFragmentName(_viewPager.getId(), i); 
Fragment frag = _fragmentManager.findFragmentByTag(fragmentName); 
private static String makeFragmentName(int viewId, int index) { 
    return "android:switcher:" + viewId + ":" + index; 
} 
+0

我有3頁不是2 –

+0

對不起,我的意思是幾頁 –