从 FragmentStatePagerAdapter 调用方法

call a method from FragmentStatePagerAdapter

我正在尝试从 FragmentStatePagerAdapter 调用一个方法来添加和删除选项卡。

public class TabPagerAdapter extends FragmentStatePagerAdapter {

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

}

现在主要 activity 我想调用它以便我可以删除 ActivityResult 上的标签

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

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

 }

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

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