Скрыть/показать серию AChartEngine с помощью флажков

По сути, у меня есть диаграмма с четырьмя разными сериями, которая по умолчанию показывает все четыре из них одновременно. Я хочу разрешить пользователю скрывать и/или показывать их снова по своему усмотрению, отмечая флажки.

Я нашел аналогичный вопрос здесь и последовал обоим данным советам, но это не работай. Вот как сейчас выглядит один из моих флажков:

    checkBox1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if(((CheckBox)v).isChecked()){
                multiRenderer.addSeriesRenderer(distanceRenderer);
 //                 distanceRenderer.setColor(Color.parseColor("#990000")); //(making transparent method)
            }
            else{
                //distanceRenderer.setColor(Color.TRANSPARENT); //(making transparent method)
                multiRenderer.removeSeriesRenderer(distanceRenderer);

            }
        }
    });

Идея состоит в том, что когда я сниму флажок, я скрою этот один рендерер, а когда я снова его поставлю, он будет снова добавлен.

В предложениях ветки, на которую я ссылался, они сказали удалить все средства визуализации, а затем повторно ввести те, которые не должны быть скрыты. Я тоже пробовал это, но безрезультатно. Третий вариант заключался в том, чтобы просто изменить цвет на прозрачный всякий раз, когда я хотел, чтобы он исчез, это также не сработало.

Я отладил его, и он правильно входит в условия, но ничего не происходит. Есть ли что-то, что мне нужно позвонить, что я пропустил?

Спасибо!

Редактировать: я не знаю, помогает ли это как-то, но я также пытался вызвать функцию XYMultipleSeriesDataset repaint(). Это вызвало исключение IllegalStateException, ооооооо.... Все еще бесполезно...


person theJuls    schedule 26.05.2014    source источник


Ответы (1)


Попробуйте это для скрытия:

r.setColor(Color.TRANSPARENT);
mChartView.repaint();

где r равно XYSeriesRenderer .

person keshav    schedule 27.05.2014
comment
Работал отлично! Большое спасибо! Я предполагаю, что раньше это не работало, потому что я вызывал функцию repaint() всякий раз, когда пытался добавить или удалить серию... Я не был достаточно умен, чтобы пробовать ее всякий раз, когда я меняю цвет моего XYSeriesRenderer. - person theJuls; 27.05.2014