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

时间:2016-07-23 09:55:46

标签: android android-fragments android-viewpager

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

# chmod g+w /var/www/html -R

在我的Tab Fragment中,我有一个RecyclerView,其中有一些库已经实现了多个选择。 我想按硬件后退按钮来关闭选择模式。

我的片段中有这个功能:

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);
    }

但我不知道如何将此功能放在父Activity onBackPressed()中。

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

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式覆盖活动的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();
    }
}