5

FragmentTabhost에서 현재 보이는 단편 인 단편에 대한 포인터를 가져 오는 데 문제가 있습니다.findFragmentByTag - FragmentTabHost의 단편 찾기 - 항상 null

if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { 
    Fragment f = new TabsFragment(); 

    getSupportFragmentManager().beginTransaction().add(android.R.id.content, f, "tabsfragment").commit(); 
} 

TabsFragment

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     mTabHost = new FragmentTabHost(getActivity()); 
     mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.tabs); 

     mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Offers", 
       getResources().getDrawable(R.drawable.offersale)), 
       OfferListFragment.class, 
       null); 

     mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("News", 
       getResources().getDrawable(R.drawable.newspaper)), 
       NewsFragment.class, 
       null); 

     return mTabHost; 

    } 

이제 때 탭을 만들려면이 onCreate 방법과 SherlockFragment 서브 클래스 :

나는 그것에서 Tabhost를로드 SecondActivity라는 SherlockFragmentActivity이 같은 onCreate 방법의이 나는 두 번째 탭에 있는데, 원래 작업 SecondActivity에 의해 시작된 클래스에서 수행 된 백그라운드 작업을 가지고 있는데,이 작업을 s 나에게 탭에 대한 참조를주고 싶지만 항상 null을 반환합니다! 이 배경 클래스를 시작할 때

NewsFragment newsView = (NewsFragment) delegate.getSupportFragmentManager().findFragmentByTag("Tab2");

delegate 변수는 다시 SecondActivity에 대한 포인터입니다.

탭의 조각에 대한 포인터를 얻으려면 어떻게해야합니까? 탭을 추가 할 때 "Tab2"가 설정되어 조각에 대해 Tag이 잘못 되었습니까?

답변

19

나는 내 자신의 질문에 답하는 것이 싫지만, 수면을 할 수 있다는 것이 놀랍습니다. 이 괴물

NewsFragment newsView = (NewsFragment) delegate 
         .getSupportFragmentManager() 
         .findFragmentByTag("tabsfragment") 
         .getChildFragmentManager() 
         .findFragmentByTag("Tab2"); 
+0

멋진 대답은 ... 당신은 ... 당신을 위해 : – Gunaseelan

+0

멋진 대답을 내 시간 .. 큰 감사를 저장하는 tabhost에서 나에게 조각에 대한 포인터를 제공합니다 ..... –