Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MPAndroidChart-折线图不显示直线_Android_Mpandroidchart - Fatal编程技术网

MPAndroidChart-折线图不显示直线

MPAndroidChart-折线图不显示直线,android,mpandroidchart,Android,Mpandroidchart,我正试图用MPAndroidChart构建一个折线图来表示我从分贝表中得到的值。问题是,我只得到一个移动的点,它代表当前的值,但我想有一条线,在移动时,显示值。有点像脑电图,需要弄清楚 以下是与onCreate()方法中的图表相关的所有代码: 以下是我用来更新图表中数据的方法: private LineDataSet createSet(List<Entry> entries) { LineDataSet set = new LineDataSet(entries, "Dec

我正试图用MPAndroidChart构建一个折线图来表示我从分贝表中得到的值。问题是,我只得到一个移动的点,它代表当前的值,但我想有一条线,在移动时,显示值。有点像脑电图,需要弄清楚

以下是与onCreate()方法中的图表相关的所有代码:

以下是我用来更新图表中数据的方法:

private LineDataSet createSet(List<Entry> entries) {
    LineDataSet set = new LineDataSet(entries, "Decibel Data");
    set.setAxisDependency(YAxis.AxisDependency.LEFT);
    set.setLineWidth(4f);
    set.setColor(Color.RED);
    set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
    set.setCubicIntensity(0.2f);

    return set;
}

private void updateChart(float x, float y) {

    List<Entry> entries = new ArrayList<>();
    entries.add(new Entry(x, y));

    if (entries.isEmpty()) {
        chart.clear();
    } else {
        LineDataSet lineDataSet = createSet(entries);
        LineData data = new LineData(lineDataSet);
        data.setValueTextColor(Color.BLUE);
        chart.setData(data);
        chart.notifyDataSetChanged();
        chart.invalidate();
    }
}
private LineDataSet createSet(列表项){
LineDataSet集合=新的LineDataSet(条目,“分贝数据”);
setAxisDependency(YAxis.AxisDependency.LEFT);
设置线宽(4f);
set.setColor(颜色:红色);
set.setMode(LineDataSet.Mode.CUBIC_-BEZIER);
集。集立体度(0.2f);
返回集;
}
私有void updateChart(浮动x,浮动y){
列表项=新的ArrayList();
条目。添加(新条目(x,y));
if(entries.isEmpty()){
chart.clear();
}否则{
LineDataSet LineDataSet=createSet(条目);
LineData数据=新的LineData(lineDataSet);
data.setValueTextColor(Color.BLUE);
图表.设置数据(数据);
chart.notifyDataSetChanged();
chart.invalidate();
}
}
因为我需要动态更新数据,所以从线程调用updateChart(float x,float y)。 这是我运行应用程序时看到的:


我能做些什么来解决这个问题?

问题在下面一行:

List<Entry> entries = new ArrayList<>();

请务必让我知道,以便获得进一步的帮助。快乐编码!当它工作时,检查列表是否没有值,并执行该检查。
List<Entry> entries = new ArrayList<>();
private List<Entry> entries = new ArrayList<>();
private void updateChart(float x, float y) 
{
    entries.add(new Entry(x, y));
    LineDataSet lineDataSet = createSet(entries);
    LineData data = new LineData(lineDataSet);
    data.setValueTextColor(Color.BLUE);
    chart.setData(data);
    chart.notifyDataSetChanged();
    chart.invalidate();
}