【发布时间】:2014-04-02 13:11:16
【问题描述】:
在我的主要活动中,我设置了一个接口CentreKeyPress,我在 ViewPager 中有 4 个片段,其中一些实现了这一点,一些没有。该接口有一个onBack 方法,用于按下后退按钮。这是我当前的代码
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
ViewPager pager = (ViewPager)findViewById(R.id.contact_view_pager);
List<Fragment> frags = adapter.getFragments();
try {
((CentreKeyPress) frags.get(pager.getCurrentItem())).onBack();
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return super.onKeyUp(keyCode, event);
}
try/catch 循环是检查 Fragment 是否实现接口的最佳方法,还是有某种方法可以用来检查它是否实现?或者,我的 Fragment 可以自己处理 onKeyUp 吗?
【问题讨论】: