- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序,用户在 edittext 中输入数据并按下保存按钮。
通过按“保存”,我将用户数据(在一列中)和当前日期(在另一列中)保存在一个文件中。
然后,我按下另一个按钮并制作绘图(使用图表引擎)日期(x 轴)数据(y 轴)。
因此,在一天中输入数据会导致保存,例如:“1”(用户数据)-> 20/4/2013,“2”-> 20/4/2013,“3”-> 20/2013 年 4 月。
在绘图中,我在 y 轴上有 3 个点(好),在 x 轴上有 3 个点(不好)。
我想在 x 轴上有一个点,因为数据是在同一天输入的。
我保存数据:
public void savefunc(){
SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy");
Date d=new Date();
String formattedDate=thedate.format(d);
Log.d("tag","format"+formattedDate);
dates_Strings.add(formattedDate);
double thedata=Double.parseDouble(value.getText().toString().trim());
mydata.add(thedata);
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File (sdCard, "MyFiles");
directory.mkdirs();
File file = new File(directory, filename);
FileOutputStream fos;
//saving them
try {
fos = new FileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
for (int i=0;i<mydata.size();i++){
bw.write(mydata.get(i)+","+dates_Strings.get(i)+"\n");
}
...
如何保存一天中的用户数据?
也许在这里检查一下:Date d=new Date();
?检查是否是同一天。
或者在这里:bw.write(mydata.get(i)+","+dates_Strings.get(i)+"\n");
但是我想不通。
例如,我在日期“20/4/2013”中输入数据“1”、“2”、“3”。
----------------更新---------------------------- ------------------
mRenderer.setXLabels(0);
for (int i=0;i<mydata.size();i++){
mRenderer.addXTextLabel(i,dates_Strings.get(i));
Date lastDate=null;
String lastdate="";
try{
// the initial date
Date initialDate=formatter.parse(dates_Strings.get(mydata.size()-1));
Calendar c = Calendar.getInstance();
c.setTime(initialDate);
c.add(Calendar.DATE, 1); // increase date by one
lastDate =c.getTime();
}catch ...
}
mRenderer.setXAxisMax(lastDate.getTime());
mRenderer.addXTextLabel(i,dates_Strings.get(i));
}
最佳答案
这确实是一个 AChartEngine 问题。内部模型曾经保存在 ArrayList
中,因此不存在这些问题。在某个时候,社区努力通过大量数据点使 AChartEngine 更快。那时,模型开始使用 Map
而不是 ArrayList
。此实现防止多次添加相同的 X 值。但是,为了解决这个问题,我向 X 添加了一个非常小的值(如果它已经存在)。在您的示例中,第一个值是 20/04/2013 00:00:00.0
,第二个值是 20/04/2013 00:00:00.001
和第三个是 20/04/2013 00:00:00.002
。
现在,您的问题的解决方案是在 X 轴上设置更宽的范围。
renderer.setXAxisMax(someDate.getTime());
someDate
可以是 21/04/2013
。
关于java - 在一天内保存用户数据(同一天 -> 许多用户数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124137/
我有一个应用程序,用户在 edittext 中输入数据并按下保存按钮。 通过按“保存”,我将用户数据(在一列中)和当前日期(在另一列中)保存在一个文件中。 然后,我按下另一个按钮并制作绘图(使用图表引
我是一名优秀的程序员,十分优秀!