Нулевой экземпляр ShinobiChart на Android 4.3
Я следую краткому руководству по 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
всегда инициализируется нулем. Я звоню это из пользовательского класса, наследующего от Fragment
, в onCreateView
метод, и я подозреваю, что эта проблема может быть коренится в этом - но я не уверен, как это исправить.
1 ответ
ChartFragment получает свой shinobiChart во время ChartFragment.onCreate, поэтому в вашем коде он все еще нулевой - все, что вы до сих пор делали, - это создаете его экземпляр.
Предположительно, вы планируете выполнить некоторые настройки диаграммы, используя ссылку ShinobiChart, поэтому я бы предложил создать подкласс ChartFragment и перенести код настройки в его метод onCreate (обязательно вызовите super.onCreate(saveInstanceState);).
В примере CustomDataAdapter есть пример этого шаблона.