考虑一个名为 MyFragmentClass
的扩展 Fragment
的类,它实现了 newInstance(args)
。
我想做的是为任何扩展MyFragmentClass
的东西创建一个getter,这样我就可以通过newInstance(args)
创建一个新的Fragment。像这样的东西:
<T extends MyFragmentClass> Class<T> getMyFragmentClass() {
return SomeClassExtendingMyFragmentClass.class;
}
然后
public void makeNewFragment() {
MyFragmentClass fragment = getMyFragmentClass().somehowCallNewInstance(args);
}
但是我遇到了一些困难,因为我无法真正将 new MyFragmentClass()
传递给它,因为这违背了使用 newInstance(args)
的目的,并且如果我想要的参数位于调用 get()
调用的类中,我无法提前调用 newInstance(args)
。
我尝试传回.class
,但我只能对其调用newInstance()
(无参数)。
有解决办法吗?
最佳答案
据我了解,您需要结构方法来从派生类创建实例。定义“抽象”方法并在派生类中重写它。 对于 Activity 和 fragment 之间的通信,请考虑使用具有粘性事件的 EventBus。
关于java - 传递一个类并调用它的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333065/