在父Activity onBackPressed方法中调用Fragment接口方法

欧文桥

我有一个扩展AppCompatActivity的Activity。而且在此活动中,我有一个像这样填充的ViewPager:

private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new Tab1(), "Tab1");
        adapter.addFragment(new Tab2(), "Tab2");
        adapter.addFragment(new Tab3(), "Tab3");
        viewPager.setAdapter(adapter);
    }

在我的标签片段中,我有一个RecyclerView,其中某些库实现了多个选择。我想通过按硬件后退按钮来实现选择模式的关闭。

我在我的片段中有此功能:

public void closeSelectMode() {
        if(mMultiSelector.isSelectable())
            setSelection(mMultiSelector);
       super.onBackPressed();
    }

但是我不知道如何将此函数放在父活动onBackPressed()中。

我也尝试使用Fragment接口实现此功能,但是我不知道如何将onBackPressed函数中接口功能的实现放到父Activity中。

塞奇

您可以通过以下方式覆盖Activity的onBackPressed:

@Override
public void onBackPressed() {
    Fragment fragment = getFragmentManager().findFragmentById(R.id.fragment_name);
    if (fragment instanceof YourFragment) {
        YourFragment yourFragment = (YourFragment) fragment;
        yourFragment.closeSelectMode();
    } else {
        super.onBackPressed();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章