2016-07-23 62 views
1

我有一个扩展了AppCompatActivity的Activity。而也是在这个活动我有一个装满像这样一个ViewPager:在父Activity中调用Fragment接口方法onBackPressed方法

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。

回答

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(); 
    } 
} 
+1

哇感谢!它很酷!但不是 片段fragment = getFragmentManager()。findFragmentById(R.id.fragment_name);我使用fragment = adapter.getItem(0); –