2016-09-18 3 views
4

android studio에서 제공하는 탭 활동 템플릿을 사용했지만 사용 된 다른 조각에 대한 ID를 찾지 못했습니다. 템플릿에는 세 조각 모두에 대해 .xml 및 .java가 하나만있었습니다. 나는 약간의 변경을 가하고 3 개의 조각을 위해 3 개의 분리 된 .xml과 .java를 만들었다. 하지만 .xml 또는 .java에서 다른 조각에 대한 ID를 설정하는 방법을 알아낼 수 없으며 ID가 없으면 조각 간 통신을 수행 할 수 없습니다.알아두기 탭 활동 템플릿에 의해 제공되는 단편의 조각 ID

답변

0

지금 단편 입수

Fragment f = getSupportFragmentManager().findFragmentByTag(getFragmentTag(mViewPager.getId(), mViewPager.getCurrentItem())); 


public static String getFragmentTag(int viewId, long id) { 
    return "android:switcher:" + viewId + ":" + id; 
} 
+0

MainActivity AppCompatActivity은 상기 조각 클래스 Fragmen 연장 연장된다. 그들은 추상 클래스를 구현할 수 없습니다. 인터페이스가 필요합니다. 또한 코드의 어느 부분에서 조각의 ID를 설정합니까? –

+0

'MainActivity 클래스'에서'FragmentPagerAdapter'를 확장하여'SectionPagerAdapter'를 찾을 수 있습니다. 만약 당신이'FragmentPagerAdapter' 메쏘드의'instantiateItem' 메쏘드를 살펴 본다면, 프래그먼트 초기화 중에 mCurTransaction.add (container.getId(), fragment, makeFragmentName (container.getId(), itemId)); 조각을 추가했습니다. 그래서 프래그먼트를 검색하기 위해서는 Fragment f = getSupportFragmentManager()를 호출하면됩니다. findFragmentByTag (android : switcher : "+ mViewPager.getId() +": "+ mViewPager.getCurrentItem()); ' –

+0

내 대답을 업데이 트하십시오. –