Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何自动启动功能片段生命周期_Android_Fragment_Fragment Lifecycle - Fatal编程技术网

Android 如何自动启动功能片段生命周期

Android 如何自动启动功能片段生命周期,android,fragment,fragment-lifecycle,Android,Fragment,Fragment Lifecycle,我有一个应用程序,其中我附加了不同的带有活动的片段。在那个活动容器中,我替换了不同的片段 因此,在活动开始时,我将替换活动容器中的MapFragment。稍后,我替换另一个片段,然后从主活动中再次替换map片段。虽然我认为我在片段中有错误的映射实现,但我想知道并想做一些不同的事情,我认为我对片段没有更好的理解,所以我认为这就是为什么我得到空指针异常 我到目前为止所做的事情 案例1. 正如我在AppStart上所说的,我正在替换地图片段,但除了通过在GoogleMapV2中设置用户位置启用来显示用

我有一个应用程序,其中我附加了不同的带有活动的片段。在那个活动容器中,我替换了不同的片段

因此,在活动开始时,我将替换活动容器中的MapFragment。稍后,我替换另一个片段,然后从主活动中再次替换map片段。虽然我认为我在片段中有错误的映射实现,但我想知道并想做一些不同的事情,我认为我对片段没有更好的理解,所以我认为这就是为什么我得到空指针异常

我到目前为止所做的事情

案例1. 正如我在AppStart上所说的,我正在替换地图片段,但除了通过在GoogleMapV2中设置用户位置启用来显示用户当前位置之外,我什么也不做。所以,在地图上点击按钮,比如说显示其他位置,从服务器获取位置信息,并在地图上画图钉。就地图片段而言,这是很有效的

案例2

如果用户单击按钮,比如说“显示位置”,而容器中还有其他片段,比如说包含应用程序信息的Us片段,所以现在在这个按钮上,假设地图片段应该再次被替换,然后这个片段中的函数将从服务器下载位置并在地图上显示它们,应该在我调用按钮单击时开始工作

  fragmentTransaction1.replace(R.id.frame, myMapFragment, "MyMapFragment").commit();
                        fragmentManager.executePendingTransactions();
                        myMapFragment.GetAllLocations("friendsLocation");
所以这个GetLocations()应该运行,但是在这个阶段,应用程序会崩溃,并显示null指针异常。在这个函数中,myMapFragment.GetAllLocations(“friendsLocation”) 需要一个上下文,我将其作为getActivity(),需要这个上下文,因为我必须使用需要上下文的ION库调用web api

这是我的基本问题

  • 我怎样才能知道片段已经启动,然后我从MainActivity调用的函数应该在mapFragment加载并启动之后运行,这样我就不能在getActivity()中获取空上下文

  • 还有其他方法吗?我希望您理解我的需要,即,我想替换map片段,我想通过将参数从主活动传递给fragment方法来同时调用fragment方法,但是怎么做呢

  • 我的想法是,当通过Mainactivity按钮替换回地图片段时,我应该在地图片段中设置一些静态值

  • 地图中的公共静态布尔isLocationShouldDownload==flase// 碎片

    我应该在替换片段时将其设置为真 然后,当片段在运行状态下启动时,它应该检查这个变量,如果它是真的(由主活动设置),那么它应该下载并开始绘制管脚。但我不知道如何才能知道碎片正在运行

    我不知道如何以及在何处实施我在第3点中提出的想法


    请与我分享您的想法,并给我建议或分享源代码,说明我如何通过主要活动完成此任务,该片段应替换并下载位置,并在地图上显示它们,而不会导致应用程序崩溃

    片段myMapFragment=新的myMapFragment();getSupportFragmentManager().beginTransaction().replace(R.id.frame,myMapFragment,“myMapFragment”).commit();如果您使用的是android.support.v4.app.Fragment,则必须使用getSupportFragmentManager();你是说我用完全相同的行替换主容器中的映射片段,问题是获取上下文并调用该函数。片段xml中的按钮在哪里,主活动中的主xmlmain xml在哪里