2024.4.8
第二十天四
所花时间:2小时
代码量:200+
博客量:1
了解到的知识点:个人学习记录app——
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5F5"
tools:context=".MainActivity2">
<!-- Logo -->
<ImageView
android:id="@+id/LogoImage"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="100dp"
android:src="@drawable/123"
app:layout_constraintTop_toTopOf="parent" />
<!-- 标题 -->
<TextView
android:id="@+id/TitleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="Timing"
android:textColor="#808080"
android:textSize="30sp"
android:textStyle="italic"
app:layout_constraintTop_toBottomOf="@id/LogoImage" />
<!-- 目标与分析按钮 -->
<Button
android:id="@+id/GoalAnalysisButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:onClick="onGoalAnalysisButtonClick"
android:text="目标与分析"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/TitleText" />
<!-- 每日打卡按钮 -->
<Button
android:id="@+id/DailyCheckInButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:text="每日打卡"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/GoalAnalysisButton" />
<!-- 统计分析按钮 -->
<Button
android:id="@+id/StatisticsButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:text="统计分析"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/DailyCheckInButton"
android:onClick="queryStatisticsData"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5F5"
tools:context=".MainActivity2">
<!-- Logo -->
<ImageView
android:id="@+id/LogoImage"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="100dp"
android:src="@drawable/123"
app:layout_constraintTop_toTopOf="parent" />
<!-- 标题 -->
<TextView
android:id="@+id/TitleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="Timing"
android:textColor="#808080"
android:textSize="30sp"
android:textStyle="italic"
app:layout_constraintTop_toBottomOf="@id/LogoImage" />
<!-- 目标与分析按钮 -->
<Button
android:id="@+id/GoalAnalysisButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:onClick="onGoalAnalysisButtonClick"
android:text="目标与分析"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/TitleText" />
<!-- 每日打卡按钮 -->
<Button
android:id="@+id/DailyCheckInButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:text="每日打卡"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/GoalAnalysisButton" />
<!-- 统计分析按钮 -->
<Button
android:id="@+id/StatisticsButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:background="@drawable/translucent_button"
android:text="统计分析"
android:textColor="@android:color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/DailyCheckInButton"
android:onClick="queryStatisticsData"/>
</androidx.constraintlayout.widget.ConstraintLayout>
package com.hui.demo3;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import com.hui.demo3.dao.PlanningDao;
import com.hui.demo3.dao.StudentDao;
import com.hui.demo3.entity.StatisticData;
import com.hui.demo3.entity.Student;
import java.util.ArrayList;
public class MainActivity2 extends AppCompatActivity {
private Button goalAnalysisButton;
private Button dailyCheckInButton;
private Button statisticsButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
goalAnalysisButton = findViewById(R.id.GoalAnalysisButton);
dailyCheckInButton = findViewById(R.id.DailyCheckInButton);
statisticsButton = findViewById(R.id.StatisticsButton);
// 目标与分析按钮点击事件
goalAnalysisButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity2.this, GoalAnalysis.class);
startActivity(intent);
}
});
// 每日打卡按钮点击事件
dailyCheckInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity2.this, DailyCheckIn.class);
startActivity(intent);
}
});
}
// 处理统计与分析按钮点击事件
public void queryStatisticsData(View view) {
new Thread() {
@Override
public void run() {
// 在后台线程中执行查询统计数据的操作
// 获取当前登录用户的 studentId
String studentId = StudentDao.getCurrentLoggedInUserId();
// 获取学生对象
StudentDao studentDao = new StudentDao();
Student student = studentDao.findStudent(studentId);
if (student != null) {
// 获取 setGoal、setRecord 和完成度百分比
int setGoal = student.getSetGoal();
int setRecord = student.getSetRecord();
double completionPercentage = PlanningDao.calculateCompletionPercentage(studentId);
// 创建一个列表存储数据
ArrayList<StatisticData> statisticDataList = new ArrayList<>();
statisticDataList.add(new StatisticData(studentId, setGoal, setRecord, completionPercentage));
// 将数据传递给 Statistics 类(com.example.demo3 包下)
Intent intent = new Intent(MainActivity2.this, Statistics.class);
intent.putParcelableArrayListExtra("statisticDataList", statisticDataList);
startActivity(intent);
}
}
}.start();
}
}
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import com.hui.demo3.dao.PlanningDao;
import com.hui.demo3.dao.StudentDao;
import com.hui.demo3.entity.StatisticData;
import com.hui.demo3.entity.Student;
import java.util.ArrayList;
public class MainActivity2 extends AppCompatActivity {
private Button goalAnalysisButton;
private Button dailyCheckInButton;
private Button statisticsButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
goalAnalysisButton = findViewById(R.id.GoalAnalysisButton);
dailyCheckInButton = findViewById(R.id.DailyCheckInButton);
statisticsButton = findViewById(R.id.StatisticsButton);
// 目标与分析按钮点击事件
goalAnalysisButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity2.this, GoalAnalysis.class);
startActivity(intent);
}
});
// 每日打卡按钮点击事件
dailyCheckInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity2.this, DailyCheckIn.class);
startActivity(intent);
}
});
}
// 处理统计与分析按钮点击事件
public void queryStatisticsData(View view) {
new Thread() {
@Override
public void run() {
// 在后台线程中执行查询统计数据的操作
// 获取当前登录用户的 studentId
String studentId = StudentDao.getCurrentLoggedInUserId();
// 获取学生对象
StudentDao studentDao = new StudentDao();
Student student = studentDao.findStudent(studentId);
if (student != null) {
// 获取 setGoal、setRecord 和完成度百分比
int setGoal = student.getSetGoal();
int setRecord = student.getSetRecord();
double completionPercentage = PlanningDao.calculateCompletionPercentage(studentId);
// 创建一个列表存储数据
ArrayList<StatisticData> statisticDataList = new ArrayList<>();
statisticDataList.add(new StatisticData(studentId, setGoal, setRecord, completionPercentage));
// 将数据传递给 Statistics 类(com.example.demo3 包下)
Intent intent = new Intent(MainActivity2.this, Statistics.class);
intent.putParcelableArrayListExtra("statisticDataList", statisticDataList);
startActivity(intent);
}
}
}.start();
}
}