Android 如何从主活动调用片段的函数
首先让我告诉你我想做什么。 我有一个带有导航抽屉和一些片段类的活动。在“活动简历”中,我调用了一个MapFragment,我使用它在google地图上用蓝点向用户显示其当前位置 此操作正在成功运行 现在,从导航抽屉中,我想在地图上显示PIN,为此,我调用了用于从服务器下载PIN并在地图上显示它们的函数。此函数名为GetAllPins,我使用Ion库以以下方式执行此操作:Android 如何从主活动调用片段的函数,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,首先让我告诉你我想做什么。 我有一个带有导航抽屉和一些片段类的活动。在“活动简历”中,我调用了一个MapFragment,我使用它在google地图上用蓝点向用户显示其当前位置 此操作正在成功运行 现在,从导航抽屉中,我想在地图上显示PIN,为此,我调用了用于从服务器下载PIN并在地图上显示它们的函数。此函数名为GetAllPins,我使用Ion库以以下方式执行此操作: public void GetAllPins() { progressDialog.show(); Io
public void GetAllPins() {
progressDialog.show();
Ion.with(getActivity())
.load(MyServiceUrl)
.progressHandler(new ProgressCallback() {
@Override
public void onProgress(long downloaded, long total) {
if (downloaded == total) {
progressDialog.dismiss();
}
}
})
.setMultipartParameter("name", "Stacy")
.setMultipartParameter("latitude","18.92239u")
.setMultipartParameter("longitude", "24.98329")
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
if (result == null) {
progressDialog.dismiss();
Toast.makeText(getActivity(), "Error in establishing connection with server", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Completed successfully", Toast.LENGTH_SHORT).show();
}
}
);
}
因此,我在ProgressDialog上得到一个Null pointerException,但是如果我注释掉以下内容,就会发生错误
FATAL EXCEPTION: main
java.lang.NullPointerException: Can not pass null context in to retrieve ion instance
告诉我如何从主活动调用此函数,以使用MyMapFragment在地图上显示管脚。
我不想制作一个不同的地图片段来显示上面的图钉。请帮帮我 从日志本身可以清楚地看出,调用上下文的错误是。。。从片段中,当您调用getActivity()时,u将获得适当的上下文。。。但是当您从MainActivity调用相同的方法时,getActivity()将返回null。。。因此,最好将上下文作为参数添加到函数中,当从fragment调用时,通过传递getActivity()调用它,从MainActivity通过传递'this'调用它 我没有测试它。。。但它应该有用 像这样从MainActivity调用函数,fragment.GetAllPins(MainActivity.this)强>
当您从片段调用时,它应该是这样的,GetAllPins(getActivity())将参数上下文添加到方法中,并在使用不同的上下文调用它时传递它。它给了我相同的NullpointerException错误您可以展开logcat输出并显示代码中断的行吗。使用(上下文)。。。。在这条线上。。。。。。。。。。。。当我使用public void GetAllPins(上下文)时{尝试使用
Log.e(“上下文”,“上下文:”+Context);
当你调用该方法时,请看当你试图在null contextit中传递时,它给了我与nullpointerException相同的错误,我已经知道我必须传递上下文,我这样做了,它给了我nullpointerException getAllPins方法在Mapfragment中有多大作用,MainActivity。这会在其中起作用吗?不…When u从片段调用,应该是这样的,GetAllPins(getActivity());在尝试从片段访问活动之前,还应该确保片段已附加到活动。是的,它已附加,因为我可以看到它上的位置地图已初始化,所有事情都已完成
FATAL EXCEPTION: main
java.lang.NullPointerException: Can not pass null context in to retrieve ion instance