1

我正在关注 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。我Fragment在方法中从继承自 ,的自定义类调用它onCreateView,我怀疑这个问题可能源于此 - 但我不确定如何解决它。

4

1 回答 1

1

ChartFragment 在 ChartFragment.onCreate 期间获取其 shinobiChart,因此在您的代码中此时它仍然为空 - 到目前为止您所做的只是实例化它。

大概您打算使用 ShinobiChart 参考进行一些图表设置,所以我建议将 ChartFragment 子类化,并将您的设置代码移动到它的 onCreate 方法中(一定要调用 super.onCreate(savedInstanceState);)。

在 CustomDataAdapter 示例中有一个这种模式的示例。

于 2013-10-21T08:28:14.873 回答