Android 片段方法不重复

Android 片段方法不重复,android,android-studio,android-fragments,methods,mpandroidchart,Android,Android Studio,Android Fragments,Methods,Mpandroidchart,我正在创建一个折线图,其中包含一个片段中的MPandroid图表。我制作了折线图,并添加了用于输入自定义值的代码。使用Logcat跟踪,我发现问题在于片段中的setdata()方法仅在应用程序首次启动时运行,而不是在您返回片段屏幕时运行。这意味着数据集不会更新,因此图表不会更新 java(显示图表的片段) 日志: 2019-09-19 11:42:55.074 16844-16844/com.example.mysugartracker E/create: graph oncreate meth

我正在创建一个折线图,其中包含一个片段中的MPandroid图表。我制作了折线图,并添加了用于输入自定义值的代码。使用Logcat跟踪,我发现问题在于片段中的setdata()方法仅在应用程序首次启动时运行,而不是在您返回片段屏幕时运行。这意味着数据集不会更新,因此图表不会更新

java(显示图表的片段)

日志:

2019-09-19 11:42:55.074 16844-16844/com.example.mysugartracker E/create: graph oncreate method reached
2019-09-19 11:42:55.076 16844-16844/com.example.mysugartracker E/set: method reached
2019-09-19 11:42:55.121 16844-16844/com.example.mysugartracker E/table: table oncreate method reached
2019-09-19 11:43:00.869 16844-16844/com.example.mysugartracker E/Testing: Bundle made
2019-09-19 11:43:00.871 16844-16844/com.example.mysugartracker E/hello: text sent
仅针对某些上下文:数据由用户在单独的活动中输入,然后保存在房间数据库中。其中一个片段显示输入的recyclerview列表(工作正常),另一个片段应在折线图中显示输入。应用程序运行正常,没有错误或崩溃,但输入不会显示在图表中

我在网上找到的所有信息都表明,要刷新数据,只需调用
mChart.notifyDataSetChanged();
mChart.invalidate()
我已经做了,但数据仍然没有显示。从我的logcat中,我知道提交输入时setdata()方法不会再次运行

我需要一种方法来修复代码,以便数据动态更新,或者某种方法来确保再次调用setdata()


谢谢你的帮助

我可以看到,您对setData的调用在onCreateView中。 如果只创建一次视图,则只调用一次

如果您继续进行另一项活动,然后返回到此活动,则会发生这种情况。 由于该活动未被销毁,因此不会重新创建它,它将使用已存在的活动

无论何时显示片段,都需要更新数据。 为此,请在片段中使用onResume

@Override
public void onResume(){
    super.onResume();

    setData();
}

您好@theblitz,代码重新运行了这个方法,非常感谢!但是,我的日志显示正在生成捆绑包,但是setdata()中的if语句仍然不会运行,表示捆绑包为空。你知道怎么解决这个问题吗?
2019-09-19 11:42:55.074 16844-16844/com.example.mysugartracker E/create: graph oncreate method reached
2019-09-19 11:42:55.076 16844-16844/com.example.mysugartracker E/set: method reached
2019-09-19 11:42:55.121 16844-16844/com.example.mysugartracker E/table: table oncreate method reached
2019-09-19 11:43:00.869 16844-16844/com.example.mysugartracker E/Testing: Bundle made
2019-09-19 11:43:00.871 16844-16844/com.example.mysugartracker E/hello: text sent
@Override
public void onResume(){
    super.onResume();

    setData();
}