2017-12-27 15 views
0

탭 레이아웃 단편을 보유하는 활동이 있습니다. 나는 2 개 탭이되면 모든 것이 잘 작동하지만 내가 새 탭을 추가 할 때 나는 여기 ClassCastException 새 단편이 SectionsPagerAdapter에 추가 된 경우

Caused by: java.lang.ClassCastException: rauhalamika.rcontrolble.HomeFragment cannot be cast to rauhalamika.rcontrolble.ManualFragment
가 SectionsPagerAdapter입니다 얻을 :

public class SectionsPagerAdapter extends FragmentPagerAdapter { 
 

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

 
     @Override 
 
     public Fragment getItem(int position) { 
 
      switch (position){ 
 
       case 0: 
 
        PresetsFragment presets = new PresetsFragment(); 
 
        return presets; 
 
       case 1: 
 
        ManualFragment manual = new ManualFragment(); 
 
        return manual; 
 
       case 2: 
 
        HomeFragment home = new HomeFragment(); 
 
        return home; 
 
       default: 
 
        return null; 
 
      } 
 
     } 
 

 
     @Override 
 
     public int getCount() { 
 
      // Show 3 total pages. 
 
      return 3; 
 
     } 
 

 
     @Override 
 
     public CharSequence getPageTitle(int position) { 
 
      switch (position) { 
 
       case 0: 
 
        return "Presets"; 
 
       case 1: 
 
        return "Manual"; 
 
       case 2: 
 
        return "Home"; 
 
      } 
 
      return null; 
 
     } 
 
    }

그리고 문제는 내가 ManualFragment의 메서드를 호출 할 때 발생합니다. S :

((ManualFragment)getSupportFragmentManager().findFragmentById(R.id.container)).updatePressure(values);

이 방법은 ManualFragment에서 TextViews의 무리를 업데이트합니다.

PresetsFragment 만 ManualFragment 인 경우 모든 기능이 작동하지만 HomeFragment를 추가하면 앱이 다운됩니다.

내가 뭘 잘못하고 있니?

+0

패키지가 일치하는지 여부를 확인하십시오. 패키지가 일치하는지 여부를 확인하십시오. android.support.v4.app.Fragment, android.support.Fragment – Praveen

+0

지원 라이브러리를 사용하고 있습니다. 불일치가 없습니다. –

답변

0

FragmentPagerAdapter을 사용하는 경우 ID로 조각을 가져올 수 없습니다. 조각 읽기 This thread 태그를 들어

getSupportFragmentManager().findFragmentByTag("f1") 

getSupportFragmentManager().findFragmentById(R.id.container) 

변경이.

관련 문제