Я использую линейный график hichart в своем приложении для Android. Я устанавливаю данные и событие щелчка, оно работает в первый раз, как исключение, но когда данные изменяются, и я обновляю график, отображается правильно, но событие щелчка не работает.
После установки данных я вызываю метод перезагрузки, но проблема остается.
Как я устанавливаю данные:
// Click event
HIPlotOptions plotoptions = new HIPlotOptions();
plotoptions.setSeries(new HISeries());
HISeries series = plotoptions.getSeries();
plotoptions.getSeries().setLabel(new HILabel());
plotoptions.getSeries().getLabel().setConnectorAllowed(false);
plotoptions.getSeries().setPoint(new HIPoint());
plotoptions.getSeries().getPoint().setEvents(new HIEvents());
plotoptions.getSeries().getPoint().getEvents().setClick(new HIFunction(
f -> {
setValue(f.getProperty("x"), f.getProperty("y"));
}, new String[]{"x", "y"}
));
options.setPlotOptions(plotoptions);
// Setting data
HISeries line2 = new HISeries();
line2.setName(reportDto.getDates().get(0).getMaxBaselineDisplayName());
line2.setData(new ArrayList<>(list2));
line2.setColor(HIColor.initWithHexValue(chartOneColor));
options.setSeries(new ArrayList<>(Arrays.asList(line2)));
chartView.setOptions(options);
chartView.reload();
Дайте мне знать, если я что-то упустил.
Прежде всего, метод reload() был устарел, поэтому избегайте его использования.
И если я не ошибаюсь, разве вам не нужно делать это после создания HIPlotOptions:
options.setPlotOptions(plotoptions);
Вы можете проверить примеры здесь.
что я должен использовать вместо перезагрузки ()
Для замены reload() оформите заказ на этот связь.
Согласно документации chartView.reload(); устарел, и если вы хотите обновить данные диаграммы, вам просто нужно установить только метод установки.
Удалите метод reload() и попробуйте!
Вы хотите вызвать chartView.setOptions(options); ? Если нет, подскажите правильный код.
да, я делаю это. Я просто проверяю, что это ошибка копирования и вставки. Я обновляю вопрос. Вы знаете другой обходной путь?