繁体   English   中英

Android类层次结构和Fragment接口

[英]Android class hierarchy and interfaces with Fragment

我有两个Fragment层次结构:

Fragment -> MyAbstractFragment1 > MyAbstractFragment2 > ...-> MyAbstractFragmentN > MyFragment

Fragment -> ListFragment > MyAbstractListFragment1 > MyAbstractListFragment2 > ...-> MyAbstractListFragmentN > MyListFragment

MyAbstractFragmentNMyAbstractListFragmentN实现IMyFragment ,因此MyFragmentMyListFragment实现了此接口。

有什么方法可以创建由实现IMyFragmentFragment类型的字段? 那么'MyListFragment'和'MyFragment'都是正确的类型吗?

我不能从MyFragmentMyListFragment都继承来创建超类,因为与开始有很大的不同。 他们只有Fragment中常见的, IMyFragmentMyAbstractListFragmentNMyAbstractFragmentN

我想写:

class SomeClass{
    private {FragmentImplementsIMyFragment} mFragment;

    ...
    mFragment = new MyFragment();
    ...
    mFragment = new MyListFragment();
}

我需要两种行为:来自Fragment和来自IMyFragment

有什么方法可以创建由实现IMyFragment的Fragment类型的字段? 那么'MyListFragment'和'MyFragment'都是正确的类型吗?

根据您真正的目标是什么,您可能要使用IMyFragment作为您的类型,或者在代码中进行一些检查以查看您的Fragment是否实现了必需的接口。 您还可以检查所创建对象的类是什么,并采取相应的措施

我取得的最好成绩是添加到IMyFragment方法:

Fragment getFragment();

并始终执行:

Fragment getFragment() { return this; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM