Нулевой экземпляр 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 есть пример этого шаблона.

Другие вопросы по тегам