学习进度条

今日学习时间: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库的基本使用,实现了数据的可视化展示。

posted @ 2025-05-04 15:06  haoyinuo  阅读(6)  评论(0)    收藏  举报