我的问题是将两个字符串:KEY_DATE 和 KEY_TIME 转换为图表的日期/时间格式。我不知道将它们转换为双打是否也是一种解决方案。
我有一个 SQLite 数据库,它有一个包含四个类型 STRING 列的表。
public static final String KEY_ROWID = "_id";
public static final String KEY_WORKOUT = "workout_type";
public static final String KEY_DATE = "date";
public static final String KEY_TIME = "workout_time";
此数据已使用以下 SQL 存储到数据库中。
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_WORKOUT
+ " TEXT NOT NULL, " + KEY_DATE + " TEXT NOT NULL, "
+ KEY_TIME + " TEXT NOT NULL);"
我的锻炼应用程序中有一个秒表。当用户在那里提交时:
- 当前系统日期转换为字符串并以 KEY_DATE 形式存储在 dB 中(格式 dd-mmm-yy)
- 小时、分钟和秒的秒表 LONG 值转换为字符串并连接为 KEY_TIME 并存储在 dB 中(格式:hh:mm:ss)
我想使用在 Eclipse 中启动并运行的achartengine在图表中显示这些数据。
KEY_DATE 将在 x 轴上,KEY_TIME 将在 y 轴上。
以下方法从数据库中检索 KEY_DATE 和 KEY_TIME。
public String getWorkoutDate(){
String[] columns = new String[] { KEY_ROWID, KEY_WORKOUT, KEY_DATE,
KEY_TIME };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
String result = "";
int iDate = c.getColumnIndex(KEY_DATE);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iDate);
}
return result;
}
public String getWorkoutTime(){
String[] columns = new String[] { KEY_ROWID, KEY_WORKOUT, KEY_DATE,
KEY_TIME };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
String result = "";
int iTime = c.getColumnIndex(KEY_TIME);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iTime);
}
return result;
}
我创建了以下方法将字符串转换回日期和时间格式。我不确定如何使用它们,或者它们是否合适。
public Date stringToDate(String stringDate) throws java.text.ParseException {
SimpleDateFormat formatter;
Date date;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = (Date) formatter.parse(stringDate);
System.out.println("stringToDate: Today is " + date);
return date;
}
public Date stringToTime(String stringTime) throws ParseException{
SimpleDateFormat formatter;
Date time;
formatter = new SimpleDateFormat("hh:mm:ss");
time = (Date) formatter.parse(stringTime);
System.out.println("Time: " + formatter.format(time));
return time;
}
我需要帮助将这些字符串转换为日期时间。我不知道将它们存储在什么集合类型中。
在 achartengine 示例中,x 和 y 值存储在 ArrayList 中
KEY_TIME 值在 y 轴上永远不会超过 60 分钟。所以它可以转换成 Double 例如。35 分 30 秒将是 35.3。
KEY_DATE 将在 x 轴上作为 dd-mmm 或 dd-mmm-yy。我不知道我需要使用什么类型的 ArrayList 来存储这些数据。
一旦我将数据存储为正确的类型,我想我知道如何使用 DBHelper 在 achartengine 中对数据进行编码。
我是一名新手程序员,需要一些代码方面的帮助。这是我的第一个应用程序准备好进入 Google Play 市场之前代码中的最后一个问题!任何帮助将不胜感激。