2024.3.29
第十九天
所花时间:2小时
代码量:400+
博客量:1
了解到的知识点:个人学习记录app——设定每周学习目标
package com.hui.demo3;
import static com.hui.demo3.dao.StudentDao.getCurrentLoggedInUserId;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.hui.demo3.dao.RecordDao;
import com.hui.demo3.dao.StudentDao;
import com.hui.demo3.entity.Record;
public class DailyCheckIn extends AppCompatActivity {
private EditText startTimeEditText;
private EditText endTimeEditText;
private EditText weekNumberEditText;
private EditText studyRecordEditText;
private Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily_check_in);
// 初始化界面组件
startTimeEditText = findViewById(R.id.startTimeEditText);
endTimeEditText = findViewById(R.id.endTimeEditText);
weekNumberEditText = findViewById(R.id.weekNumberEditText);
studyRecordEditText = findViewById(R.id.studyRecordEditText);
submitButton = findViewById(R.id.submitButton);
}
// 方法:插入每日打卡数据
public void insertDailyCheckIn(View view) {
String startTime = startTimeEditText.getText().toString();
String endTime = endTimeEditText.getText().toString();
String weekNumber = weekNumberEditText.getText().toString();
String studyRecord = studyRecordEditText.getText().toString();
// 创建 Record 对象
Record record = new Record();
record.setStudentId(getCurrentLoggedInUserId());
record.setStartTime(startTime);
record.setEndTime(endTime);
record.setWeekNum(Integer.parseInt(weekNumber));
record.setRecording(studyRecord);
new Thread() {
@Override
public void run() {
RecordDao recordDao = new RecordDao();
boolean success = recordDao.insertRecord(record);
if (success) {
hand.sendEmptyMessage(1); // 插入成功消息
StudentDao.incrementSetRecord();
} else {
hand.sendEmptyMessage(0); // 插入失败消息
}
}
}.start();
}
// Handler 处理消息
@SuppressLint("HandlerLeak")
final Handler hand = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 0) {
Toast.makeText(getApplicationContext(), "每日打卡数据录入失败", Toast.LENGTH_LONG).show();
} else if (msg.what == 1) {
Toast.makeText(getApplicationContext(), "每日打卡数据录入成功", Toast.LENGTH_LONG).show();
finish(); // 插入成功后关闭当前活动
}
}
};
}
import static com.hui.demo3.dao.StudentDao.getCurrentLoggedInUserId;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.hui.demo3.dao.RecordDao;
import com.hui.demo3.dao.StudentDao;
import com.hui.demo3.entity.Record;
public class DailyCheckIn extends AppCompatActivity {
private EditText startTimeEditText;
private EditText endTimeEditText;
private EditText weekNumberEditText;
private EditText studyRecordEditText;
private Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily_check_in);
// 初始化界面组件
startTimeEditText = findViewById(R.id.startTimeEditText);
endTimeEditText = findViewById(R.id.endTimeEditText);
weekNumberEditText = findViewById(R.id.weekNumberEditText);
studyRecordEditText = findViewById(R.id.studyRecordEditText);
submitButton = findViewById(R.id.submitButton);
}
// 方法:插入每日打卡数据
public void insertDailyCheckIn(View view) {
String startTime = startTimeEditText.getText().toString();
String endTime = endTimeEditText.getText().toString();
String weekNumber = weekNumberEditText.getText().toString();
String studyRecord = studyRecordEditText.getText().toString();
// 创建 Record 对象
Record record = new Record();
record.setStudentId(getCurrentLoggedInUserId());
record.setStartTime(startTime);
record.setEndTime(endTime);
record.setWeekNum(Integer.parseInt(weekNumber));
record.setRecording(studyRecord);
new Thread() {
@Override
public void run() {
RecordDao recordDao = new RecordDao();
boolean success = recordDao.insertRecord(record);
if (success) {
hand.sendEmptyMessage(1); // 插入成功消息
StudentDao.incrementSetRecord();
} else {
hand.sendEmptyMessage(0); // 插入失败消息
}
}
}.start();
}
// Handler 处理消息
@SuppressLint("HandlerLeak")
final Handler hand = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 0) {
Toast.makeText(getApplicationContext(), "每日打卡数据录入失败", Toast.LENGTH_LONG).show();
} else if (msg.what == 1) {
Toast.makeText(getApplicationContext(), "每日打卡数据录入成功", Toast.LENGTH_LONG).show();
finish(); // 插入成功后关闭当前活动
}
}
};
}
<?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=".GoalAnalysis">
<!-- 周数输入框 -->
<EditText
android:id="@+id/weekNumberEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_edit"
android:hint="周数"
android:inputType="number"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- 目标输入框 -->
<TextView
android:id="@+id/goalText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="目标"
android:textColor="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@id/weekNumberEditText"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@id/weekNumberEditText"
app:layout_constraintTop_toBottomOf="@id/weekNumberEditText" />
<EditText
android:id="@+id/goalEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="输入目标"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/goalText" />
<!-- 设置目标按钮 -->
<Button
android:id="@+id/setGoalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_button"
android:text="设置目标"
android:textColor="@android:color/white"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="@id/goalEditText"
app:layout_constraintStart_toStartOf="@id/goalEditText"
app:layout_constraintTop_toBottomOf="@id/goalEditText"
android:onClick="insertGoal"/>
<!-- 分析文本 -->
<TextView
android:id="@+id/analysisText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:gravity="center"
android:text="目标分析"
android:textColor="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@id/setGoalButton"
app:layout_constraintStart_toStartOf="@id/setGoalButton"
app:layout_constraintTop_toBottomOf="@id/setGoalButton" />
<!-- 目标分析输入框 -->
<EditText
android:id="@+id/analysisEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="输入目标分析"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/analysisText" />
<!-- 目标完成度输入框 -->
<EditText
android:id="@+id/goalCompletionEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="目标完成度"
android:inputType="numberDecimal"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/analysisEditText" />
<!-- 完成目标分析按钮 -->
<Button
android:id="@+id/analyzeGoalCompletionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_button"
android:text="完成目标分析"
android:textColor="@android:color/white"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="@id/goalCompletionEditText"
app:layout_constraintStart_toStartOf="@id/goalCompletionEditText"
app:layout_constraintTop_toBottomOf="@id/goalCompletionEditText"
android:onClick="insertAnalysis"/>
</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=".GoalAnalysis">
<!-- 周数输入框 -->
<EditText
android:id="@+id/weekNumberEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_edit"
android:hint="周数"
android:inputType="number"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- 目标输入框 -->
<TextView
android:id="@+id/goalText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="目标"
android:textColor="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@id/weekNumberEditText"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@id/weekNumberEditText"
app:layout_constraintTop_toBottomOf="@id/weekNumberEditText" />
<EditText
android:id="@+id/goalEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="输入目标"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/goalText" />
<!-- 设置目标按钮 -->
<Button
android:id="@+id/setGoalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_button"
android:text="设置目标"
android:textColor="@android:color/white"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="@id/goalEditText"
app:layout_constraintStart_toStartOf="@id/goalEditText"
app:layout_constraintTop_toBottomOf="@id/goalEditText"
android:onClick="insertGoal"/>
<!-- 分析文本 -->
<TextView
android:id="@+id/analysisText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:gravity="center"
android:text="目标分析"
android:textColor="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@id/setGoalButton"
app:layout_constraintStart_toStartOf="@id/setGoalButton"
app:layout_constraintTop_toBottomOf="@id/setGoalButton" />
<!-- 目标分析输入框 -->
<EditText
android:id="@+id/analysisEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="输入目标分析"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/analysisText" />
<!-- 目标完成度输入框 -->
<EditText
android:id="@+id/goalCompletionEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/translucent_edit"
android:hint="目标完成度"
android:inputType="numberDecimal"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/analysisEditText" />
<!-- 完成目标分析按钮 -->
<Button
android:id="@+id/analyzeGoalCompletionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/translucent_button"
android:text="完成目标分析"
android:textColor="@android:color/white"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="@id/goalCompletionEditText"
app:layout_constraintStart_toStartOf="@id/goalCompletionEditText"
app:layout_constraintTop_toBottomOf="@id/goalCompletionEditText"
android:onClick="insertAnalysis"/>
</androidx.constraintlayout.widget.ConstraintLayout>