MPAndroidChart con valores nulos

Estoy usando el MPAndroidChart y realmente lo estoy disfrutando.

Una "pequeña" necesidad que tengo es que puedo poner valores nulos a los 'entrys'. Estoy supervisando las conexiones de apache en los servidores de mi sistema, y ​​me gustaría ver si están abajo (donde pongo el valor nulo) o si simplemente no conections (0).

He intentado, pero la clase Entry no acepta 'null' como valor que muestra el mensaje: 'El constructor Entry (null, int) es indefinido'

¡Gracias!

Una posible solución para usted podría ser para comprobar el tiempo el objeto que recibió es nulo , o no. Si el objeto es nulo, ni siquiera crea un objeto Entry lugar de simplemente establecer su valor en null.

Ejemplo:

 // array that contains the information you want to display ConnectionHolder[] connectionHolders = ...; ArrayList<Entry> entries = new ArrayList<Entry>(); int cnt = 0; for(ConnectionHolder ch : connectionHolders) { if(ch != null) entries.add(new Entry(ch.getNrOfConnections(), cnt)); else { // do nothing } cnt++; // always increment } 

Esto crearía, por ejemplo, un LineChart donde no se dibujan círculos en índices donde el objeto ConnectionHolder era nulo.

Para una versión futura de la biblioteca, intentaré agregar la característica para que se admitan valores nulos.

Mi solución es dibujar otro DataSet con color TRANSPARENTE (o arbitrario): – gráfico con un número fijo de valores de X – los valores de Y se actualizan periódicamente – el indicador booleano indica la parte transparente (u otro color)

 private static final int SERIES_SIZE = 360; int xIndex = -1; float xIndexVal; private LineChart chart; private boolean currentFlag; public void createChart(LineDataSet dataSet) { LineData chartData = new LineData(); prepareDataSet(dataSet); chartData.addDataSet(dataSet); for (int i = 0; i < SERIES_SIZE; i++) { chartData.addXValue("" /*+ i*/); } chart.setData(chartData); } private void prepareDataSet(LineDataSet dataSet, YAxis axis, int color) { // configure set } public void update(Float val, boolean flag) { List<ILineDataSet> dsl = chart.getData().getDataSets(); Log.d("chart", String.format("%s --- %d sets, index %d", descr, dsl.size(), xIndex)); if (xIndex == SERIES_SIZE - 1) { // remove all entries at X index 0 for (int i = 0; i < chart.getData().getDataSetCount(); i++) { Entry entry0 = chart.getData().getDataSetByIndex(i).getEntryForIndex(0); if (entry0 != null && entry0.getXIndex() == 0) { chart.getData().removeEntry(entry0, i); Log.d("chart", String.format("entry 0 removed from dataset %d, %d entries in the set", i, chart.getData().getDataSetByIndex(i).getEntryCount())); } else { Log.d("chart", String.format("all %d entries in the set kept", chart.getData().getDataSetByIndex(i).getEntryCount())); } } // remove empty set, if any for (Iterator<ILineDataSet> mit = dsl.iterator(); mit.hasNext(); ) { if (mit.next().getEntryCount() == 0) { mit.remove(); Log.d("chart", String.format("set removed, %d sets", dsl.size())); } } // move all entries by -1 for (ILineDataSet ds : dsl) { for (Entry entry : ((LineDataSet)ds).getYVals()) { entry.setXIndex(entry.getXIndex() - 1); } } } else { xIndex++; } if (currentFlag != flag) { currentFlag = !currentFlag; LineDataSet set = new LineDataSet(null, ""); prepareDataSet(set, chart.getAxisLeft(), currentFlag ? Color.TRANSPARENT : Color.BLUE); chart.getData().addDataSet(set); if (xIndex != 0) { chart.getData().addEntry(new Entry(xIndexVal, xIndex - 1), dsl.size() - 1); } } xIndexVal = val; chart.getData().addEntry(new Entry(val, xIndex), dsl.size() - 1); chart.notifyDataSetChanged(); chart.invalidate(); } 
  • ¿Cómo puedo reducir el tiempo que MPAndroidChart gasta para mostrar datos?
  • MPAndroidChart - Eliminar borde superior / eje desde v2
  • Gráfico de barras de MPAndroidChart cómo cambiar el color de cada etiqueta
  • MarkerView sale del gráfico para el último punto del gráfico
  • leyenda desplazable mpandroidchart piechart
  • Java.lang.RuntimeException: Paralleable encontró IOException escribiendo objeto serializable en Android que pasa el objeto ArrayList
  • En MPAndroidChart, ¿cómo agregar el evento de clic para cada barra en Barchart?
  • MPAndroidChart: eje x inferior y múltiples ejes-y
  • MPAndroidChart ocultar rejilla de fondo
  • Cómo ocultar valores dibujados en MPAndroidChart?
  • MPAndroidChart - ¿Cómo definir la descripción en otra posición?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.