Android 如何检查片段是否实现了接口

Android 如何检查片段是否实现了接口,android,interface,Android,Interface,在我的主要活动中,我设置了一个界面CentreKeyPress,我在一个ViewPager中有4个片段,其中一些实现了这个,一些没有。当按下后退按钮时,该界面有一个返回方法。这是我目前的密码 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { ViewPager pager = (ViewPager)findView

在我的主要活动中,我设置了一个界面
CentreKeyPress
,我在一个ViewPager中有4个片段,其中一些实现了这个,一些没有。当按下后退按钮时,该界面有一个返回方法。这是我目前的密码

@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);
}
@覆盖
公共布尔onKeyUp(int-keyCode,KeyEvent事件){
if(keyCode==KeyEvent.keyCode\u BACK){
ViewPager pager=(ViewPager)findViewById(R.id.contact\u view\u pager);
List frags=adapter.getFragments();
试一试{
((CentreKeyPress)frags.get(pager.getCurrentItem()).onBack();
返回true;
}捕获(例外e){
e、 printStackTrace();
}
}
返回super.onKeyUp(keyCode,event);
}

try/catch循环是检查片段是否实现接口的最佳方法,还是有某种方法可以用来检查它是否实现接口?或者,我的片段可以自己处理onKeyUp吗?

尝试使用关键字
INSTANCEOF
并检查片段是否是接口的实例
您可以将此检查到:

尝试使用关键字
INSTANCEOF
并检查片段是否是接口的实例
您可以将此检查到:

检查片段是否是给定片段的
实例

if(frags.get(pager.getCurrentItem()) instanceof CentreKeyPress){
    //fragment implements CentreKeyPress
}

检查片段是否为给定片段的
实例

if(frags.get(pager.getCurrentItem()) instanceof CentreKeyPress){
    //fragment implements CentreKeyPress
}