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 auto scroll MPAndroidChart gráfico de línea?
  • Dibujar línea vertical en el centro de un gráfico de líneas (indicador)
  • Formato de etiqueta de fecha / hora de eje-x de MPAndroidChart
  • Establecer valores de barras en el centro de la barra en MPAndroid Bar Chart
  • MPAndroidChart - ¿Cómo cambiar ValueFormatter mientras amplía?
  • MPAndroidChart: Ocultar etiquetas de valor en un gráfico de barras apilado
  • Establecer MP androide Y-Axis punto de inicio android
  • MPAndroidChart BarChart horizontal / vertical
  • En MPAndroidChart, ¿cómo agregar el evento de clic para cada barra en Barchart?
  • Cómo eliminar el relleno de barchart horizontal de mpandroidchart?
  • ¿Hay una manera de ocultar etiquetas de valor para cada barra en el gráfico de barras en MPAndroidChart?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.