学习进度条
今日学习时间:2.5 小时
今日代码量:220 行
今日博客:1 篇
一、主要代码:
目标设置
在SetGoalActivity.java中,用户可以设置每周学习目标。通过Retrofit调用后端 API 将目标信息发送到服务器。
String goalContent = etGoalContent.getText().toString().trim();
if (goalContent.isEmpty()) {
showToast("目标内容不能为空");
return;
}
WeeklyGoal goal = new WeeklyGoal();
goal.setUserId(studentId);
goal.setGoalContent(goalContent);
goal.setWeekStartDate(getFormattedDate());
ApiService apiService = RetrofitClient.getClient().create(ApiService.class);
Call<ApiResponse<String>> call = apiService.setWeeklyGoal(token, goal);
call.enqueue(new Callback<ApiResponse<String>>() {
@Override
public void onResponse(Call<ApiResponse<String>> call, Response<ApiResponse<String>> response) {
if (response.isSuccessful() && response.body() != null) {
ApiResponse<String> apiResponse = response.body();
if (apiResponse.getCode() == 1) {
showToastAndFinish("目标设置成功");
} else {
showToast(apiResponse.getMessage());
}
} else {
showToast("服务器错误: " + response.code());
}
}
@Override
public void onFailure(Call<ApiResponse<String>> call, Throwable t) {
Log.e(TAG, "网络请求失败", t);
showToast("网络错误: " + t.getMessage());
}
});
统计功能
在StatisticsActivity.java中,使用MPAndroidChart库实现了用户类型分布、学习时间分布和目标完成情况的统计图表展示。
private void setupUserTypePieChart() {
List<PieEntry> entries = new ArrayList<>();
entries.add(new PieEntry(75f, "学生"));
entries.add(new PieEntry(20f, "教师"));
entries.add(new PieEntry(5f, "管理员"));
PieDataSet dataSet = new PieDataSet(entries, "用户类型分布");
dataSet.setColors(Color.rgb(148, 215, 234), Color.rgb(115, 191, 228), Color.rgb(82, 196, 231));
dataSet.setValueTextSize(12f);
dataSet.setValueTextColor(Color.WHITE);
PieData data = new PieData(dataSet);
pieChartUserType.setData(data);
pieChartUserType.getDescription().setEnabled(false);
pieChartUserType.setEntryLabelTextSize(12f);
pieChartUserType.setEntryLabelColor(Color.WHITE);
pieChartUserType.invalidate();
}
在build.gradle中添加MPAndroidChart库的依赖:
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
三、安全注意事项
数据准确性:在设置目标和统计数据时,确保数据的准确性和一致性,避免数据错误导致的统计结果偏差。
图表展示:在使用图表库时,注意图表的性能和兼容性,避免出现卡顿和显示异常的问题。
四、今日实践成果
实现了每周学习目标的设置功能,设置成功后会提示用户。
完成了统计功能的开发,使用饼图和折线图展示用户类型分布、学习时间分布和目标完成情况。
遇到的问题:
网络请求失败(解决:检查 API 接口和网络连接)
图表显示异常(解决:检查数据格式和图表配置)
五、明日计划
学习管理员和教师的管理功能实现。
研究如何优化统计功能,支持更多维度的统计。
六、总结收获
掌握了目标设置和统计功能的开发流程。
了解了MPAndroidChart库的基本使用,实现了数据的可视化展示。

浙公网安备 33010602011771号