在我的主要 Activity 中,我设置了一个界面 CentreKeyPress
,并且 ViewPager 中有 4 个 Fragments,其中一些实现了此功能,一些则没有。该界面有一个 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 是否实现该接口(interface)的最佳方法,还是有某种方法可以用来检查它是否实现该接口(interface)?或者,我的 Fragment 可以自己处理 onKeyUp 吗?
最佳答案
尝试使用关键字INSTANCEOF
并检查 fragment 是否是接口(interface)的实例
您可以检查:use of "Instance of" in java
关于android - 如何检查Fragment是否实现了接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22812582/