考虑扩展名为FragmentMyFragmentClass的类,该类已实现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与粘性事件一起使用。

10-04 14:58