从FragmentStatePagerAdapter调用方法

时间:2016-06-08 01:48:58

标签: android 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);

 }
你能帮我解决这个问题吗?谢谢。

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.
    }
}