achartengine - не могу понять, как использовать даты в качестве оси x - файл, который я сохраняю, пуст
У меня есть мероприятие, в котором я беру ввод из текста редактирования и сохраняю его в списке.
Я также храню в списке текущую дату.
Затем я нажимаю кнопку сохранения, которая сохраняет выше.
На следующий день пользователь вводит еще какие-то данные и сохраняет их и так далее.
Я хочу сделать график с форматом даты по оси X и осью Y значения, введенные пользователем.
В одном упражнении я имею:
...
String filename = "data.csv";
List<Double> mydata=new ArrayList<Double>();
List<Date> mydate=new ArrayList<Date>();
....value=(EditText) findViewById(R.id.enter_data);
...
switch (v.getId()){
case R.id.savebtn:
savefunc();
break;
case R.id.graphicsbtn:
Intent i = new Intent();
i.setClassName(this,LineGraph.class.getName());
this.startActivity(i);
break;
public void savefunc(){
SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy");
Date d=new Date();
try{
d=thedate.parse(filename);
mydate.add(d);
}
catch (ParseException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
double thedata=Double.parseDouble(value.getText().toString().trim());
mydata.add(thedata);
..
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
for (int i=0;i<mydate.size();i++){
bw.write(mydate.get(i)+","+mydata.get(i)+"\n");
...
В LineGraph Activity:
public class LineGraph extends Activity {
private static List<Date> date = new ArrayList<Date>();
private static List<Double> data = new ArrayList<Double>();
public Intent getIntent(Context context){
readfunc();
TimeSeries series = new TimeSeries("Showing data");
for (int i=0;i<date.size();i++){
series.add(date.get(i),data.get(i));
}
Функция чтения:
public void readfunc(){
SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy");
Date d=new Date();
try{
d=thedate.parse(filename);
}
catch..
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
do {
s = br.readLine();
if (s != null ){
String[] splitLine = s.split(",");
date.add(d);//Double.parseDouble(splitLine[0]));
data.add(Double.parseDouble(splitLine[1]));
У меня есть эти проблемы:
1) Файл, который я получаю, пуст (некоторая проблема с датой, потому что метод сохранения и чтения из файла работает).
2) На экране графика появляется белый фон (конечно, нет данных, потому что файл пуст), но почему белый фон? Я использую тот же код для других целей и не получаю белый фон.
3) Я не уверен, как использовать Даты по оси X. Должен ли я использовать список? Список? ,
------------------------ОБНОВИТЬ------------------------- --------------------------------
Хорошо, наконец-то! (После предложения пользователя Dan)
я использовалChartFactory.getTimeChartView(this, dataset, mRenderer,"dd/MM/yyyy");
вместоChartFactory.getLineChartIntent(context, dataset, mRenderer,"dd/MM/yyyy");
и вам не нужно использовать список строк, просто список дат