2024.4.1
第二十天
所花时间:2小时
代码量:350
博客量: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=".DailyCheckIn">
<!-- Logo -->
<ImageView
android:id="@+id/LogoImage"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="10dp"
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="2dp"
android:gravity="center"
android:text="每日打卡"
android:textColor="#808080"
android:textSize="30sp"
android:textStyle="italic"
app:layout_constraintTop_toBottomOf="@id/LogoImage" />
<!-- 开始时间输入框 -->
<EditText
android:id="@+id/startTimeEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="开始时间"
android:inputType="none"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/TitleText" />
<!-- 结束时间输入框 -->
<EditText
android:id="@+id/endTimeEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="结束时间"
android:inputType="none"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/startTimeEditText" />
<!-- 周数输入框 -->
<EditText
android:id="@+id/weekNumberEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
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_toBottomOf="@id/endTimeEditText" />
<!-- 学习记录文本输入框 -->
<EditText
android:id="@+id/studyRecordEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="输入学习记录"
android:inputType="textMultiLine"
android:minLines="4"
android:maxLines="10"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/weekNumberEditText" />
<!-- 提交按钮 -->
<Button
android:id="@+id/submitButton"
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/studyRecordEditText"
app:layout_constraintStart_toStartOf="@id/studyRecordEditText"
app:layout_constraintTop_toBottomOf="@id/studyRecordEditText"
android:onClick="insertDailyCheckIn"/>
</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=".DailyCheckIn">
<!-- Logo -->
<ImageView
android:id="@+id/LogoImage"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="10dp"
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="2dp"
android:gravity="center"
android:text="每日打卡"
android:textColor="#808080"
android:textSize="30sp"
android:textStyle="italic"
app:layout_constraintTop_toBottomOf="@id/LogoImage" />
<!-- 开始时间输入框 -->
<EditText
android:id="@+id/startTimeEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="开始时间"
android:inputType="none"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/TitleText" />
<!-- 结束时间输入框 -->
<EditText
android:id="@+id/endTimeEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="结束时间"
android:inputType="none"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/startTimeEditText" />
<!-- 周数输入框 -->
<EditText
android:id="@+id/weekNumberEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
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_toBottomOf="@id/endTimeEditText" />
<!-- 学习记录文本输入框 -->
<EditText
android:id="@+id/studyRecordEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/translucent_edit"
android:hint="输入学习记录"
android:inputType="textMultiLine"
android:minLines="4"
android:maxLines="10"
android:textColorHint="#808080"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/weekNumberEditText" />
<!-- 提交按钮 -->
<Button
android:id="@+id/submitButton"
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/studyRecordEditText"
app:layout_constraintStart_toStartOf="@id/studyRecordEditText"
app:layout_constraintTop_toBottomOf="@id/studyRecordEditText"
android:onClick="insertDailyCheckIn"/>
</androidx.constraintlayout.widget.ConstraintLayout>