gpt4 book ai didi

java - MPAndroidchart 库中的折线图 x 轴值重绘

转载 作者:行者123 更新时间:2023-12-01 17:47:44 26 4
gpt4 key购买 nike

当我将值从 sqlite 设置为 x 轴标签时遇到问题。 this is the picture我的X轴代码格式是

Axis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
String selectQueryz = "SELECT * FROM table_palembang";
db = new DBHelper(getApplicationContext());
SQLiteDatabase dbz = db.getWritableDatabase();
Cursor cursorz = dbz.rawQuery(selectQueryz, null);
countz = cursorz.getCount();
String[] datez = new String[countz];
ArrayList<String> arral = new ArrayList<>();
for (int k = 0; k < countz; k++) {
cursorz.moveToNext();
datez[k] = cursorz.getString(2);
arral.add(datez[k]);
}
return datez[countz % arral.size()];
}
});

有人能帮我吗?谢谢...

最佳答案

ValueFormatter 用于格式化您使用 chart.setData() 设置的数据,而不是设置数据本身。

这里是如何格式化日期的示例代码

xAxis.setValueFormatter(new IAxisValueFormatter() {

private final SimpleDateFormat mFormat = new SimpleDateFormat("dd MMM HH:mm", Locale.ENGLISH);

@Override
public String getFormattedValue(float value, AxisBase axis) {

long millis = TimeUnit.HOURS.toMillis((long) value);
return mFormat.format(new Date(millis));
}
});

编辑

我刚刚查看了您将日期数组的索引存储到图表数据中的情况。如果是这样,您只需从日期数组返回日期即可。

String[] datez;
String selectQueryz = "SELECT * FROM table_palembang";
db = new DBHelper(getApplicationContext());
SQLiteDatabase dbz = db.getWritableDatabase();
Cursor cursorz = dbz.rawQuery(selectQueryz, null);
countz = cursorz.getCount();
datez = new String[countz];
for (int k = 0; k < countz; k++) {
cursorz.moveToNext();
datez[k] = cursorz.getString(2);
}
xAxis.setValueFormatter(new IAxisValueFormatter() {

@Override
public String getFormattedValue(float value, AxisBase axis) {

return datez[(int) value];
}
});

P.S.数据库调用应该在后台线程中。

关于java - MPAndroidchart 库中的折线图 x 轴值重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53185580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com