我只想从mainactivity调用一个片段方法。
所以我试着使用一个接口。
public interface MyInterface {
void testMethod();
}
在我的片段(testfragment.java)中,我实现了接口并重写了testmethod。
@Override
public void testMethod() {
Toast.makeText(getActivity(), "Test", Toast.LENGTH_LONG).show();
}
但是现在我想在onrewardedvideocompleted get被调用后立即从mainactivity调用这个方法,但是我不知道如何做。我这样试过:
MyInterface myInterface = new TestFragment();
myInterface.testMethod();
但这里有一个nullpointerexception:
尝试对引用toast消息的空对象引用调用虚拟方法“java.lang.string android.content.context.getpackagename()”。
如何在mainactivity中从接口调用方法而不获取nullpointerexception?
谢谢
3条答案
按热度按时间enyaitl31#
在main()中,您可以创建一个myactivity的新对象,如下所示,它将允许您访问该方法:
htzpubme2#
您需要像下面那样为它创建接口
片段类应该如下所示
在里面
Activity
类,则需要创建方法setOnDataListener
把碎片初始化如下同样,在活动内部,您可以发送来自任何单击或事件的数据,您只需要从活动调用此方法来传输以下片段中的数据
wvt8vs2t3#
如果您想从活动到片段访问您的方法。您不需要任何接口。您只需要从片段示例调用方法。但是,如果要访问活动的方法,可以使用接口。
在你的活动中,
在你的碎片里,