用Android studio 记录开始日期到结束日期消耗的卡路里
时间: 2024-05-16 15:12:31 浏览: 115
可以考虑使用Android内置的SQLite数据库来存储和管理数据。下面是一个简单的示例:
1. 创建一个数据库帮助类
首先,需要创建一个数据库帮助类来创建和管理SQLite数据库。在Android Studio中,可以使用New -> Java Class创建一个新类,然后将以下代码复制到类中:
```
public class CalorieDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "calorie_db";
private static final int DATABASE_VERSION = 1;
// 表名
private static final String TABLE_NAME = "calorie";
// 列名
private static final String COLUMN_ID = "_id";
private static final String COLUMN_START_DATE = "start_date";
private static final String COLUMN_END_DATE = "end_date";
private static final String COLUMN_CALORIES = "calories";
// 创建表的SQL语句
private static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_START_DATE + " TEXT, " +
COLUMN_END_DATE + " TEXT, " +
COLUMN_CALORIES + " INTEGER)";
public CalorieDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级时的操作
}
}
```
在这个类中,我们定义了一个表名为“calorie”的表,包含了开始日期、结束日期和消耗的卡路里三个列。我们还定义了一些常量来表示表名和列名,并编写了一个CREATE_TABLE语句来创建表。
2. 向数据库中添加数据
在Activity中,可以使用以下代码向数据库中添加数据:
```
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String currentDate = dateFormat.format(new Date());
// 向数据库中添加数据
CalorieDatabaseHelper dbHelper = new CalorieDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(CalorieDatabaseHelper.COLUMN_START_DATE, startDate);
values.put(CalorieDatabaseHelper.COLUMN_END_DATE, endDate);
values.put(CalorieDatabaseHelper.COLUMN_CALORIES, calories);
db.insert(CalorieDatabaseHelper.TABLE_NAME, null, values);
db.close();
```
在这段代码中,我们首先获取当前日期并将其格式化为“yyyy-MM-dd”的形式。然后,创建一个CalorieDatabaseHelper对象并获取可写的SQLiteDatabase对象。接下来,我们创建一个ContentValues对象并将开始日期、结束日期和卡路里数值添加到其中。最后,我们使用insert()方法将数据插入到表中,并关闭数据库连接。
3. 从数据库中读取数据
可以使用以下代码从数据库中读取数据:
```
// 从数据库中读取数据
CalorieDatabaseHelper dbHelper = new CalorieDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(CalorieDatabaseHelper.TABLE_NAME, null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String startDate = cursor.getString(cursor.getColumnIndex(CalorieDatabaseHelper.COLUMN_START_DATE));
String endDate = cursor.getString(cursor.getColumnIndex(CalorieDatabaseHelper.COLUMN_END_DATE));
int calories = cursor.getInt(cursor.getColumnIndex(CalorieDatabaseHelper.COLUMN_CALORIES));
// 处理数据
} while (cursor.moveToNext());
}
cursor.close();
db.close();
```
在这段代码中,我们首先创建一个CalorieDatabaseHelper对象并获取可读的SQLiteDatabase对象。然后,使用query()方法从表中查询所有数据,并将结果存储在Cursor对象中。接下来,我们使用moveToFirst()方法将游标移到第一行,然后使用getColumnIndex()方法获取每列数据。最后,在do-while循环中遍历每行数据,并在需要时对其进行处理。
以上就是使用SQLite数据库记录开始日期到结束日期消耗的卡路里的简单示例。当然,这只是一个基础示例,实际应用中还需要考虑更多的细节和错误处理。
阅读全文