我正在尝试从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 :(得分: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.
}
}