我正在遵循 ShinobiCharts for Android 快速入门指南,除了以编程方式添加图表片段,如下所示:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ChartFragment chartFragment = new ChartFragment();
fragmentTransaction.add(R.id.history_container, chartFragment, "chart");
fragmentTransaction.commit();
ShinobiChart shinobiChart = chartFragment.getShinobiChart();
一切看起来都很好,直到最后一行,shinobiChart
总是初始化为 null。我在 onCreateView
方法中从 Fragment
继承的自定义类调用它,我怀疑这个问题可能源于此 - 但我不确定如何解决它。
在 ChartFragment.onCreate 期间获取其 shinobiChart,因此在您的代码中,此时它仍然是空的 - 到目前为止您所做的只是实例化它。
大概你打算使用 ShinobiChart 参考做一些图表设置,所以我建议对 ChartFragment 进行子类化,并将你的设置代码移动到它的 onCreate 方法中(一定要调用 super.onCreate(savedInstanceState);)。
在自定义数据适配器示例中有一个此模式的示例。