android - 如何检查Fragment是否实现了接口(interface)

标签 android interface

在我的主要 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/

相关文章:

android - 在 inAppBrowser 中启用下载 - Phonegap/Cordova

android - android singleTask Activity 不作为root?

android - 使用自定义捕获器(webrtc)从 Canvas 创建流

android - Android使用Proguard编译ClassCastException

c# - 您编写的最好(最有用)的界面是什么?

.net - 两个接口(interface)的 F# 显式接口(interface)方法

java - 覆盖接口(interface)方法

java - 为什么 MapActivity 在 API 较低的手机上崩溃?

c++ - 代表类型的变量?运行时继承?

linq-to-sql - Entity Framework 是否比 Linq2Sql 更可模拟?