Я хочу заполнить MPAndroidChart с использованием данных sqlite, все, похоже, работает, но я не знаю, почему сама диаграмма не отображается в действии. Sqlite запроса есть данные, как это в нем:Данные MPAndroidChart из slqlite не отображаются в действии
---------------------- | Data | Usage | |------------|-------| | 2016-04-24 | 7.58 | | 2016-04-06 | 7.74 | | 2016-03-13 | 8.46 | | 2016-03-22 | 8.29 | ----------------------
Но даже график не показывает вверх. Я был парование guidie в странице GitHub MPAndroidChart, но кажется, что я испортил somethink ...
ChartActivity.java
public void setData(String car_id){
dbHelper = new DBHelper(context);
Cursor curChartFuelUsage = dbHelper.getChartFuelUsage(car_id);
curChartFuelUsage.moveToFirst();
int count = curChartFuelUsage.getCount();
Float[] x_refuel_data = new Float[count];
Float[] y_fuel_usage = new Float[count];
if (curChartFuelUsage.moveToFirst()){
Log.e("CHART", "moveToFirst OK, count: " + count);
for (int i = 0 ; i < count ; i++){
x_refuel_data[i] = curChartFuelUsage.getFloat(0);
y_fuel_usage[i] = curChartFuelUsage.getFloat(1);
curChartFuelUsage.moveToNext();
}
ArrayList<Entry> values = new ArrayList<Entry>();
for (int i = 0 ; i < count ; i++){
values.add(new Entry(x_refuel_data[i], y_fuel_usage[i]));
}
LineDataSet set1 = new LineDataSet(values,"Test");
set1.setAxisDependency(YAxis.AxisDependency.LEFT);
ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(set1);
LineData lineData = new LineData(dataSets);
chart.setData(lineData);
chart.invalidate();
}
chart_activity_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
<!--android:orientation="horizontal"-->
android:orientation="vertical"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.asd.app.ChartActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/chart_activity_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/line_chart_fuel_usage"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Edit: Он работал после изменения ориентация ориентации к вертикали, но я не знаю, почему диаграмма показывает только значения в одной строке.
call chart.invalidate(), чтобы начать рисование – cxphong