Android Studio MPEandroidChart,从文本视图更新数据

luaexgnf  于 2023-02-05  发布在  Android
关注(0)|答案(1)|浏览(150)

我尝试让图表在每次textView中的值改变时刷新。以下是onCreate的代码片段。
希望你能给点建议。

final ArrayList<Entry> entriesa= new ArrayList<>();
final LineChart lineChart = (LineChart) findViewById(R.id.chart);
final LineDataSet dataset = new LineDataSet(entriesa,"AWAY");
final LineData data = new LineData(dataset);

entriesa.add(new Entry(0,0));
lineChart.setData(data);
lineChart.invalidate();

final TextView viewa1 = (TextView) findViewById(R.id.sa1);
viewa1.addTextChangedListener(new TextWatcher() {
String s=viewa1.getText().toString();
int iv = Integer.parseInt(s.replaceAll("[\\D]", ""));

    public void beforeTextChanged ( CharSequence s, int start, int count, int after ) {

    }
    public void afterTextChanged ( Editable s ) {

    }
    public void onTextChanged(CharSequence s, int start, int before, int count ) {
    entriesa.set(0,new Entry(0,iv));
    data.notifyDataChanged();
    lineChart.notifyDataSetChanged();
    lineChart.invalidate();}
});
q9rjltbz

q9rjltbz1#

在onTextChanged内声明LineData并使用addEntry将新条目追加到LineData,而不是添加到数组列表。
现在,使用getData()在每个onTextChanged上声明数据,其中包含以前保存的数据,然后使用addEntry添加最新条目。这将创建一个连续的流...就像真实的数据一样。我还使用了ILineDataSet,因为我在同一个图表上有多个数据点。
10个数据点到视口,现在我有一个很好的自动滚动折线图在我的应用程序。

LineData data = lineChart.getData();
ILineDataSet set = data.getDataSetByIndex(0);
data.addEntry(new Entry(set.getEntryCount(),iv),0);
data.notifyDataChanged();
lineChart.notifyDataSetChanged();
lineChart.setVisibleXRangeMaximum(10);
lineChart.moveViewToX(data.getEntryCount());

相关问题