Delete '界面'

main
pl2ufawr6 1 month ago
parent f2c6191729
commit d65455d9de

165
界面

@ -1,165 +0,0 @@
package com.example.doitnow;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.example.doitnow.Model.ToDoModel;
import com.example.doitnow.Utils.DatabaseHandler;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.datepicker.MaterialDatePicker;
import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class AddNewTask extends BottomSheetDialogFragment {
public static final String TAG = "AddNewTask";
private EditText newTaskText;
private EditText startTimeEdit;
private EditText endTimeEdit;
private DatabaseHandler db;
private Calendar startCalendar;
private Calendar endCalendar;
public static AddNewTask newInstance() {
return new AddNewTask();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.new_task, container, false);
newTaskText = view.findViewById(R.id.newTaskText);
startTimeEdit = view.findViewById(R.id.startTimeEdit);
endTimeEdit = view.findViewById(R.id.endTimeEdit);
View saveButton = view.findViewById(R.id.newTaskButton);
db = new DatabaseHandler(requireContext());
db.openDatabase();
startCalendar = Calendar.getInstance();
endCalendar = Calendar.getInstance();
startTimeEdit.setOnClickListener(v -> openDateTimePicker(startCalendar, startTimeEdit));
endTimeEdit.setOnClickListener(v -> openDateTimePicker(endCalendar, endTimeEdit));
saveButton.setOnClickListener(v -> {
String taskText = newTaskText.getText().toString();
if (!TextUtils.isEmpty(taskText)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
String start = sdf.format(startCalendar.getTime());
String end = sdf.format(endCalendar.getTime());
Bundle args = getArguments();
if (args != null && args.containsKey("id")) {
// 编辑任务
int id = args.getInt("id");
ToDoModel task = new ToDoModel();
task.setId(id);
task.setTask(taskText);
task.setStartTime(start);
task.setEndTime(end);
task.setStatus(0); // 可根据需要修改
db.updateTask(task);
} else {
// 添加任务
ToDoModel task = new ToDoModel();
task.setTask(taskText);
task.setStartTime(start);
task.setEndTime(end);
task.setStatus(0);
db.insertTask(task);
}
// 回传结果,通知刷新
Bundle result = new Bundle();
result.putBoolean("taskAdded", true);
getParentFragmentManager().setFragmentResult("taskAdded", result);
dismiss();
}
else{
newTaskText.setError("任務不可為空");
return;
}
});
Bundle args = getArguments();
if (args != null) {
String task = args.getString("task");
String start = args.getString("startTime");
String end = args.getString("endTime");
newTaskText.setText(task);
startTimeEdit.setText(start);
endTimeEdit.setText(end);
// 解析 startTime 字符串为 Calendar 类型
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
Date startDate = sdf.parse(start);
Date endDate = sdf.parse(end);
if (startDate != null) startCalendar.setTime(startDate);
if (endDate != null) endCalendar.setTime(endDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
return view;
}
private void openDateTimePicker(Calendar targetCalendar, EditText targetEditText) {
MaterialDatePicker<Long> datePicker = MaterialDatePicker.Builder.datePicker()
.setTitleText("選擇日期")
.setSelection(MaterialDatePicker.todayInUtcMilliseconds())
//.setTheme(R.style.CustomDatePickerTheme)
.build();
datePicker.addOnPositiveButtonClickListener(selection -> {
targetCalendar.setTimeInMillis(selection);
openTimePicker(targetCalendar, targetEditText);
});
datePicker.show(getParentFragmentManager(), "DATE_PICKER");
}
private void openTimePicker(Calendar calendar, EditText editText) {
MaterialTimePicker timePicker = new MaterialTimePicker.Builder()
.setTitleText("選擇時間")
.setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(calendar.get(Calendar.HOUR_OF_DAY))
.setMinute(calendar.get(Calendar.MINUTE))
.build();
timePicker.addOnPositiveButtonClickListener(v -> {
calendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
calendar.set(Calendar.MINUTE, timePicker.getMinute());
String formatted = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault())
.format(calendar.getTime());
editText.setText(formatted);
});
timePicker.show(getParentFragmentManager(), "TIME_PICKER");
}
}
Loading…
Cancel
Save