如何解决如何用列表视图中的数据作图?
我从android studio开始,但是在实现我的项目时遇到了一些困难,看看是否有人可以帮助我。事实证明,到目前为止,我已经拥有一个数据库,其中保存了数据,并且可以随时通过listView看到它,如这段代码所示:
public void Resultats() {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,"administracio",null,1);
SQLiteDatabase BaseDeDades = admin.getWritableDatabase();
if (BaseDeDades != null) {
Cursor c = BaseDeDades.rawQuery("select * from resultats where codijugador = "+codi+" and codiexercici = '"+exercici+"'",null);
int quantitat = c.getCount();
int i = 0;
String[] array = new String[quantitat];
if (c.moveToFirst()) {
do {
String linia = "Hora/data: "+c.getString(5)+ " Puntuació: " +c.getString(3)+ " Temps: " + c.getString(4);
array[i] = linia;
i++;
} while (c.moveToNext());
}
ArrayAdapter<String>adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,array);
final ListView llista = (ListView) findViewById(R.id.llista);
llista.setAdapter(adapter);
}
}
如您所见,在此功能中,我过滤了数据并将其显示在列表视图中。
好吧,我要做的不是代替在列表视图中显示该数据,而是将其传递给具有MPAndroidChart库的折线图,该库在X轴上找到变量“时间/数据”,而Y有2个变量(分成两行)一个用于标点符号,另一个用于时间。
到目前为止,我设法制作了一张图,但要手动输入数据。
public class MainActivity extends AppCompatActivity {
LineChart mpLineChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mpLineChart=(LineChart)findViewById(R.id.line_chart);
LineDataSet lineDataSet1 = new LineDataSet(dataValues1(),"Data Set 1");
ArrayList<ILineDataSet> dataSets = new ArrayList<>();
dataSets.add(lineDataSet1);
LineData data = new LineData(dataSets);
mpLineChart.setData(data);
mpLineChart.invalidate();
}
private ArrayList<Entry>dataValues1()
{
ArrayList<Entry>dataVals = new ArrayList<Entry>();
dataVals.add(new Entry(0,20));
dataVals.add(new Entry(1,24));
dataVals.add(new Entry(2,2));
dataVals.add(new Entry(3,10));
dataVals.add(new Entry(4,18));
return dataVals;
}
}
但是我不知道如何将两者结合起来。也就是说,考虑到数据的大小会随着数据添加到数据库中而增加,因此如何将数据从列表视图输入到图形中,因此图形必须始终自动收集所有数据。
如果有人知道我该怎么做,我将不胜感激。谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。