考虑扩展名为Fragment
的MyFragmentClass
的类,该类已实现newInstance(args)
。
我想做的是为扩展MyFragmentClass
的任何东西做一个吸气剂,这样我就可以通过newInstance(args)
创建一个新的Fragment。就像是:
<T extends MyFragmentClass> Class<T> getMyFragmentClass() {
return SomeClassExtendingMyFragmentClass.class;
}
然后
public void makeNewFragment() {
MyFragmentClass fragment = getMyFragmentClass().somehowCallNewInstance(args);
}
但是,我遇到了一些困难,因为我无法真正将其传递给
new MyFragmentClass()
,因为这违反了使用newInstance(args)
的目的,并且如果想要的args在类调用中,我也不能提早调用newInstance(args)
get()
调用。我尝试传回
.class
,但只能在其上调用newInstance()
(无参数)。有解决方法吗?
最佳答案
据我了解,您需要使用Fabric方法从派生类创建实例。定义“抽象”方法并在派生类中覆盖它。
对于Activity和fragment之间的通信,请考虑将EventBus与粘性事件一起使用。