[英]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.