public class ViewRecordsActivity extends AppCompatActivity {
private ExecutorService executorService = Executors.newSingleThreadExecutor();
private ListView listViewRecords;
private List<MoodRecord> moodRecordList;
private MoodRecordAdapter moodRecordAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_records);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("View Records");
toolbar.setNavigationOnClickListener(view -> finish());
listViewRecords = findViewById(R.id.listView_records);
moodRecordList = new ArrayList<>();
moodRecordAdapter = new MoodRecordAdapter(this, moodRecordList);
listViewRecords.setAdapter(moodRecordAdapter);
fetchRecordsFromDatabase();
listViewRecords.setOnItemClickListener((parent, view, position, id) -> {
MoodRecord record = moodRecordList.get(position);
Intent intent = new Intent(ViewRecordsActivity.this, RecordDetailActivity.class);
intent.putExtra("age", record.getAge());
intent.putExtra("beauty", record.getBeauty());
intent.putExtra("expression", record.getExpression());
intent.putExtra("image", record.getImageBase64());
intent.putExtra("mood", record.getMood());
intent.putExtra("date", record.getDate());
startActivity(intent);
});
}
private void fetchRecordsFromDatabase() {
executorService.execute(() -> {
try {
Connection connection = JDBCUtils.getConn();
if (connection != null) {
String sql = "SELECT age, beauty, expression, image, mood, DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s') as date FROM mood_records";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
String age = resultSet.getString("age");
String beauty = resultSet.getString("beauty");
String expression = resultSet.getString("expression");
String image = resultSet.getString("image");
String mood = resultSet.getString("mood");
String date = resultSet.getString("date");
MoodRecord record = new MoodRecord(age, beauty, expression, image, mood, date);
moodRecordList.add(record);
}
runOnUiThread(() -> moodRecordAdapter.notifyDataSetChanged());
resultSet.close();
preparedStatement.close();
connection.close();
}
} catch (SQLException e) {
Log.e("ViewRecordsActivity", "SQL Exception: " + e.getMessage());
}
});
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统