2014-03-28 26 views
0

我使用的是標準Android tabs,我需要從父活動訪問我的選項卡。帶ViewPager的選項卡 - 如何獲取實例而不是新對象?

我做了我的MainActivity下面讓我的標籤:

myTab = ((FirstTabFragment)mAdapter.getItem(index)); 

的問題是,我總是得到一個新的對象,而不是實例,因爲getItem實現如下:

public class TabsPagerAdapter extends FragmentPagerAdapter { 

public TabsPagerAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int index) { 

    switch (index) { 
     case 0: 
      // Status fragment activity 
      return new FirstTabFragment(); 
     case 1: 
      // Mission fragment activity 
      return new SecondTabFragment(); 
     case 2: 
      // Team fragment activity 
      return new ThirdTabFragment(); 
    } 

    return null; 
} 
... 

我GOOGLE了很多,但我仍然無法找到任何工作解決方案來獲取實例ob我的Fragments

我需要實例,因爲我需要改變片段的視圖,因此我需要它的變量。

任何想法?

謝謝!

回答

1

最好的辦法是與方法findFragmentByIdfindFragmentByTag使用FragmentManager getter方法的財產以後。當然,您需要爲由FragmentPagerAdapter創建的每個片段聲明ID或TAG。如果我沒有記錯,默認實現使用類名作爲標記。

0

將片段保存在SparseArrayHashMap中。在getItem方法中添加數組中的片段也覆蓋onFragmentDestroy方法。在方法中從SparseArrayHashMap刪除項目。現在,像這樣創建

public Fragment getFragment(int pos) { 
       return array.get(pos); 

} 
相關問題