[英]Android class hierarchy and interfaces with Fragment
我有两个Fragment
层次结构:
Fragment
-> MyAbstractFragment1
> MyAbstractFragment2
> ...-> MyAbstractFragmentN
> MyFragment
Fragment
-> ListFragment
> MyAbstractListFragment1
> MyAbstractListFragment2
> ...-> MyAbstractListFragmentN
> MyListFragment
MyAbstractFragmentN
和MyAbstractListFragmentN
实现IMyFragment
,因此MyFragment
和MyListFragment
实现了此接口。
有什么方法可以创建由实现IMyFragment
的Fragment
类型的字段? 那么'MyListFragment'和'MyFragment'都是正确的类型吗?
我不能从MyFragment
和MyListFragment
都继承来创建超类,因为与开始有很大的不同。 他们只有Fragment
中常见的, IMyFragment
从MyAbstractListFragmentN
和MyAbstractFragmentN
。
我想写:
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.