2016-06-08 3 views
-1

FragmentStatePagerAdapter의 메소드를 호출하여 탭을 추가 및 제거하려고합니다.FragmentStatePagerAdapter에서 메소드 호출

public class TabPagerAdapter extends FragmentStatePagerAdapter { 

public void removeTab(int position) { 
      new MainActivity().tabLayout.removeTabAt(1); 
      notifyDataSetChanged(); 
    } 

} 

지금은 내가 ActivityResult

의 탭을 제거 할 수 있도록 호출 할 주요 활동에
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

//this gives error 
new TabPagerAdapter().removeTab(1); 

} 

당신이 좀 도와 주 시겠어요? 고맙습니다.

답변

0

MainActivity에는 FragmentStatePagerAdapter의 인스턴스가 있어야합니다. 당신은 당신처럼 FragmentStatePagerAdapter 안에 메소드를 넣을 수 있지만 getItem() 함수를 조정해야하고 MainActivity의 인스턴스는 필요하지 않습니다. 그런 다음 MainActivity에서 도트 구문을 사용하여 FragmentStatePagerAdapter의 인스턴스에서 만든 메서드를 호출 할 수 있습니다.

public class MainActivity extends AppCompatActivity { 

private TabPagerAdapter tabPagerAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ... 

tabPagerAdapter = new TabPagerAdapter 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    tabPagerAdapter.removeTab(1); 
    } 
} 



public class TabPagerAdapter extends FragmentStatePagerAdapter { 

public void removeTab(int position) { 
     // adjust your FragmentStatePagerAdapter however you see fit. 
    } 
} 
+0

시도했지만 'tabPagerAdapter = new TabPagerAdapter' 선언은 Mainactivity에서 오류를 발생시킵니다. _TabPagerAdapter.TabPagerAdapter (android.support.v4.app.FragmentManager, int) '오류는'() '_에 적용 할 수 없습니다. – choman