2015-07-26 3 views
1

У меня есть три серии на моем графике. Серия 1 и 2 использование левая сторона шкалы, серия 3 использовать вторую шкалу, добавляя сБиблиотека Android GraphView - добавлена ​​серия GraphView.getSecondScale(). AddSeries (серия) не может быть удалена

CurrentPlot.getSecondScale().addSeries(sensor3Series); 

Пользователь имеет возможность увидеть все три серии или только некоторые из них.

серия 1 и 2 могут быть удалены с

currentPlot.removeSeries(sensor1Series); 
currentPlot.removeSeries(sensor2Series); 

но серия-не может быть удалена. Я попытался

currentPlot.removeAllSeries(); 
currentPlot.removeSeries(sensor3Series); 

Оба не снимаю серию, используя вторую шкалу.

Пожалуйста, советы, как удалить

экстракт Код:

Initialization (упрощенно):

private void initChart(boolean isContinuous) { 

     // find the temperature levels plot in the layout 
     currentPlot = (GraphView) findViewById(R.id.graph); 
     // setup and format sensor 1 data series 
     sensor1Series = new LineGraphSeries<>(); 
     // setup and format sensor 2 data series 
     sensor2Series = new LineGraphSeries<>(); 
     // setup and format sensor 3 data series 
     sensor3Series = new LineGraphSeries<>(); 

     currentPlot.getGridLabelRenderer().setNumVerticalLabels(10); 
     currentPlot.getGridLabelRenderer().setNumHorizontalLabels(5); 

     sensor1Series.setColor(Color.YELLOW); 
     sensor2Series.setColor(Color.RED); 
     sensor3Series.setColor(Color.GREEN); 
     currentPlot.getGridLabelRenderer().setVerticalAxisTitle("Watt"); 

     // SKIPPED code to add data to the 3 series with appendData() 

     currentPlot.setTitle(dayToShow); 

     minMaxVal = getMinMax(); 

     // SKIPPED set min and max bounds of both scales to manual and set the values 

     // SKIPPED add setOnDataPointTapListeners to all three series with setOnDataPointTapListener() 

     currentPlot.addSeries(sensor2Series); 
     currentPlot.getSecondScale().addSeries(sensor3Series); 
     currentPlot.addSeries(sensor1Series); 
    } 

Код для удаления выбранных серий (через CheckBox) в OnClick:

case R.id.cb_solar: 
     CheckBox cbSolar = (CheckBox)findViewById(R.id.cb_solar); 
     if (cbSolar.isChecked()) { 
      currentPlot.addSeries(sensor1Series); 
      showSeries1 = true; 
     } else { 
      currentPlot.removeSeries(sensor1Series); 
      showSeries1 = false; 
     } 
     break; 
    case R.id.cb_cons: 
     CheckBox cbCons = (CheckBox)findViewById(R.id.cb_cons); 
     if (cbCons.isChecked()) { 
      currentPlot.addSeries(sensor2Series); 
      showSeries2 = true; 
     } else { 
      currentPlot.removeSeries(sensor2Series); 
      showSeries2 = false; 
     } 
     break; 
    case R.id.cb_light: 
     CheckBox cbLight = (CheckBox)findViewById(R.id.cb_light); 
     if (cbLight.isChecked()) { 
      currentPlot.getSecondScale().addSeries(sensor3Series); 
      showSeries3 = true; 
     } else { 
      currentPlot.removeAllSeries(); 
        //removeSeries(sensor3Series); 
      showSeries3 = false; 
     } 
     break; 

EDIT: Обход проблемы - установите цвет Серия для Color.TRANSPARENT

case R.id.cb_light: 
       CheckBox cbLight = (CheckBox)findViewById(R.id.cb_light); 
       if (cbLight.isChecked()) { 
        currentPlot.getSecondScale().addSeries(sensor3Series); 
        sensor3Series.setColor(Color.GREEN); 
        showSeries3 = true; 
       } else { 
        currentPlot.removeSeries(sensor3Series); 
        sensor3Series.setColor(Color.TRANSPARENT); 
        showSeries3 = false; 
       } 
       break; 

Это делает третий ряд невидимым, но вторая шкала на правой стороне еще видна.

ответ

-1

попробовать:

graph.getSecondScale().getSeries().clear(); 
+0

Спасибо за ваш ответ. Попробует. – BeeGee1962