9 changed files with 330 additions and 17 deletions
@ -0,0 +1,64 @@ |
|||||||
|
package cc.niushuai.dididone.ui.component; |
||||||
|
|
||||||
|
import android.content.Context; |
||||||
|
import android.view.View; |
||||||
|
import android.widget.Button; |
||||||
|
import android.widget.EditText; |
||||||
|
import android.widget.TimePicker; |
||||||
|
import androidx.annotation.NonNull; |
||||||
|
import com.lxj.xpopup.core.CenterPopupView; |
||||||
|
import cc.niushuai.dididone.R; |
||||||
|
import java.util.Calendar; |
||||||
|
|
||||||
|
public class TimeNotePopupView extends CenterPopupView { |
||||||
|
private TimePicker timePicker; |
||||||
|
private EditText etNote; |
||||||
|
private Button btnConfirm, btnCancel; |
||||||
|
private TimeNoteCallback callback; |
||||||
|
|
||||||
|
// 回调接口传递选择的时间和备注
|
||||||
|
public interface TimeNoteCallback { |
||||||
|
void onConfirm(long selectedTime, String note); |
||||||
|
} |
||||||
|
|
||||||
|
public TimeNotePopupView(@NonNull Context context, TimeNoteCallback callback) { |
||||||
|
super(context); |
||||||
|
this.callback = callback; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected int getImplLayoutId() { |
||||||
|
return R.layout.time_note_popup_view; // 需要创建对应的布局文件
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void onCreate() { |
||||||
|
super.onCreate(); |
||||||
|
timePicker = findViewById(R.id.time_picker); |
||||||
|
etNote = findViewById(R.id.et_note); |
||||||
|
btnConfirm = findViewById(R.id.btn_confirm); |
||||||
|
btnCancel = findViewById(R.id.btn_cancel); |
||||||
|
|
||||||
|
// 初始化时间选择器为当前时间
|
||||||
|
Calendar calendar = Calendar.getInstance(); |
||||||
|
timePicker.setHour(calendar.get(Calendar.HOUR_OF_DAY)); |
||||||
|
timePicker.setMinute(calendar.get(Calendar.MINUTE)); |
||||||
|
|
||||||
|
btnConfirm.setOnClickListener(v -> { |
||||||
|
// 获取选择的时间(转换为毫秒时间戳)
|
||||||
|
Calendar selectedCalendar = Calendar.getInstance(); |
||||||
|
selectedCalendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour()); |
||||||
|
selectedCalendar.set(Calendar.MINUTE, timePicker.getMinute()); |
||||||
|
long selectedTime = selectedCalendar.getTimeInMillis(); |
||||||
|
|
||||||
|
// 获取输入的备注
|
||||||
|
String note = etNote.getText().toString().trim(); |
||||||
|
|
||||||
|
// 调用回调传递结果
|
||||||
|
callback.onConfirm(selectedTime, note); |
||||||
|
dismiss(); |
||||||
|
}); |
||||||
|
|
||||||
|
btnCancel.setOnClickListener(v -> dismiss()); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,56 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="vertical" |
||||||
|
android:padding="20dp" |
||||||
|
android:background="@color/white" |
||||||
|
> |
||||||
|
|
||||||
|
<TextView |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="选择打卡时间和备注" |
||||||
|
android:textSize="18sp" |
||||||
|
android:textStyle="bold" |
||||||
|
android:layout_marginBottom="16dp"/> |
||||||
|
|
||||||
|
<!-- 时间选择器 --> |
||||||
|
<TimePicker |
||||||
|
android:id="@+id/time_picker" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:timePickerMode="clock"/> |
||||||
|
|
||||||
|
<!-- 备注输入框 --> |
||||||
|
<EditText |
||||||
|
android:id="@+id/et_note" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:hint="请输入备注(可选)" |
||||||
|
android:layout_marginTop="16dp" |
||||||
|
android:inputType="textMultiLine" |
||||||
|
/> |
||||||
|
|
||||||
|
<!-- 按钮区域 --> |
||||||
|
<LinearLayout |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="horizontal" |
||||||
|
android:layout_marginTop="20dp" |
||||||
|
android:gravity="end"> |
||||||
|
|
||||||
|
<Button |
||||||
|
android:id="@+id/btn_cancel" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="取消" |
||||||
|
android:layout_marginEnd="10dp"/> |
||||||
|
|
||||||
|
<Button |
||||||
|
android:id="@+id/btn_confirm" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="确认"/> |
||||||
|
</LinearLayout> |
||||||
|
</LinearLayout> |
||||||
@ -1,4 +1,42 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<resources> |
<resources> |
||||||
|
<string name="app_name">滴滴打卡</string> |
||||||
|
<string name="navigation_drawer_open">Open navigation drawer</string> |
||||||
|
<string name="navigation_drawer_close">Close navigation drawer</string> |
||||||
|
<string name="nav_header_title">Android Studio</string> |
||||||
|
<string name="nav_header_subtitle">android.studio@android.com</string> |
||||||
|
<string name="nav_header_desc">Navigation header</string> |
||||||
|
<string name="action_settings">Settings</string> |
||||||
|
|
||||||
|
<string name="menu_home">Home</string> |
||||||
|
<string name="menu_gallery">Gallery</string> |
||||||
|
<string name="menu_slideshow">Slideshow</string> |
||||||
|
|
||||||
|
<string name="n_nav_header_title">...</string> |
||||||
|
<string name="n_nav_header_subtitle">......</string> |
||||||
|
<string name="n_menu_name_calendar">日历</string> |
||||||
|
<string name="n_menu_name_statistic">统计</string> |
||||||
|
<string name="n_menu_name_setting">设置</string> |
||||||
<string name="s_set_target">目标</string> |
<string name="s_set_target">目标</string> |
||||||
|
<string name="s_set_app">App</string> |
||||||
|
<string name="s_set_backup_restore">备份与恢复</string> |
||||||
|
<string name="s_set_backup">备份</string> |
||||||
|
<string name="s_set_restore">恢复</string> |
||||||
|
<string name="s_set_icon">图标</string> |
||||||
|
<string name="s_set_project">打卡项</string> |
||||||
|
<string name="n_menu_name_icon">ICON</string> |
||||||
|
<string name="icon_name_FontAwesome">FontAwesome</string> |
||||||
|
<string name="n_menu_name_project">打卡项</string> |
||||||
|
<string name="np_project_name">项目</string> |
||||||
|
<string name="np_icon_name">图标</string> |
||||||
|
<string name="np_color_name">颜色</string> |
||||||
|
<string name="np_color_picker">点我选颜色</string> |
||||||
|
<string name="np_button_back">返回</string> |
||||||
|
<string name="np_button_confirm">保存</string> |
||||||
|
<string name="cp_color_confirm">选择该颜色</string> |
||||||
|
<string name="cancel">取消</string> |
||||||
|
<string name="stat_header_list">列表视图</string> |
||||||
|
<string name="stat_header_week">周视图</string> |
||||||
|
<string name="stat_header_month">月视图</string> |
||||||
|
<string name="stat_header_other">其他</string> |
||||||
|
|
||||||
</resources> |
</resources> |
||||||
@ -1,4 +1,42 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<resources> |
<resources> |
||||||
|
<string name="app_name">滴滴打卡</string> |
||||||
|
<string name="navigation_drawer_open">Open navigation drawer</string> |
||||||
|
<string name="navigation_drawer_close">Close navigation drawer</string> |
||||||
|
<string name="nav_header_title">Android Studio</string> |
||||||
|
<string name="nav_header_subtitle">android.studio@android.com</string> |
||||||
|
<string name="nav_header_desc">Navigation header</string> |
||||||
|
<string name="action_settings">Settings</string> |
||||||
|
|
||||||
|
<string name="menu_home">Home</string> |
||||||
|
<string name="menu_gallery">Gallery</string> |
||||||
|
<string name="menu_slideshow">Slideshow</string> |
||||||
|
|
||||||
|
<string name="n_nav_header_title">...</string> |
||||||
|
<string name="n_nav_header_subtitle">......</string> |
||||||
|
<string name="n_menu_name_calendar">日历</string> |
||||||
|
<string name="n_menu_name_statistic">统计</string> |
||||||
|
<string name="n_menu_name_setting">设置</string> |
||||||
<string name="s_set_target">目标</string> |
<string name="s_set_target">目标</string> |
||||||
|
<string name="s_set_app">App</string> |
||||||
|
<string name="s_set_backup_restore">备份与恢复</string> |
||||||
|
<string name="s_set_backup">备份</string> |
||||||
|
<string name="s_set_restore">恢复</string> |
||||||
|
<string name="s_set_icon">图标</string> |
||||||
|
<string name="s_set_project">打卡项</string> |
||||||
|
<string name="n_menu_name_icon">ICON</string> |
||||||
|
<string name="icon_name_FontAwesome">FontAwesome</string> |
||||||
|
<string name="n_menu_name_project">打卡项</string> |
||||||
|
<string name="np_project_name">项目</string> |
||||||
|
<string name="np_icon_name">图标</string> |
||||||
|
<string name="np_color_name">颜色</string> |
||||||
|
<string name="np_color_picker">点我选颜色</string> |
||||||
|
<string name="np_button_back">返回</string> |
||||||
|
<string name="np_button_confirm">保存</string> |
||||||
|
<string name="cp_color_confirm">选择该颜色</string> |
||||||
|
<string name="cancel">取消</string> |
||||||
|
<string name="stat_header_list">列表视图</string> |
||||||
|
<string name="stat_header_week">周视图</string> |
||||||
|
<string name="stat_header_month">月视图</string> |
||||||
|
<string name="stat_header_other">其他</string> |
||||||
|
|
||||||
</resources> |
</resources> |
||||||
@ -1,4 +1,42 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<resources> |
<resources> |
||||||
|
<string name="app_name">滴滴打卡</string> |
||||||
|
<string name="navigation_drawer_open">Open navigation drawer</string> |
||||||
|
<string name="navigation_drawer_close">Close navigation drawer</string> |
||||||
|
<string name="nav_header_title">Android Studio</string> |
||||||
|
<string name="nav_header_subtitle">android.studio@android.com</string> |
||||||
|
<string name="nav_header_desc">Navigation header</string> |
||||||
|
<string name="action_settings">Settings</string> |
||||||
|
|
||||||
|
<string name="menu_home">Home</string> |
||||||
|
<string name="menu_gallery">Gallery</string> |
||||||
|
<string name="menu_slideshow">Slideshow</string> |
||||||
|
|
||||||
|
<string name="n_nav_header_title">...</string> |
||||||
|
<string name="n_nav_header_subtitle">......</string> |
||||||
|
<string name="n_menu_name_calendar">日历</string> |
||||||
|
<string name="n_menu_name_statistic">统计</string> |
||||||
|
<string name="n_menu_name_setting">设置</string> |
||||||
<string name="s_set_target">目标</string> |
<string name="s_set_target">目标</string> |
||||||
|
<string name="s_set_app">App</string> |
||||||
|
<string name="s_set_backup_restore">备份与恢复</string> |
||||||
|
<string name="s_set_backup">备份</string> |
||||||
|
<string name="s_set_restore">恢复</string> |
||||||
|
<string name="s_set_icon">图标</string> |
||||||
|
<string name="s_set_project">打卡项</string> |
||||||
|
<string name="n_menu_name_icon">ICON</string> |
||||||
|
<string name="icon_name_FontAwesome">FontAwesome</string> |
||||||
|
<string name="n_menu_name_project">打卡项</string> |
||||||
|
<string name="np_project_name">项目</string> |
||||||
|
<string name="np_icon_name">图标</string> |
||||||
|
<string name="np_color_name">颜色</string> |
||||||
|
<string name="np_color_picker">点我选颜色</string> |
||||||
|
<string name="np_button_back">返回</string> |
||||||
|
<string name="np_button_confirm">保存</string> |
||||||
|
<string name="cp_color_confirm">选择该颜色</string> |
||||||
|
<string name="cancel">取消</string> |
||||||
|
<string name="stat_header_list">列表视图</string> |
||||||
|
<string name="stat_header_week">周视图</string> |
||||||
|
<string name="stat_header_month">月视图</string> |
||||||
|
<string name="stat_header_other">其他</string> |
||||||
|
|
||||||
</resources> |
</resources> |
||||||
@ -1,4 +1,42 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<resources> |
<resources> |
||||||
|
<string name="app_name">滴滴打卡</string> |
||||||
|
<string name="navigation_drawer_open">Open navigation drawer</string> |
||||||
|
<string name="navigation_drawer_close">Close navigation drawer</string> |
||||||
|
<string name="nav_header_title">Android Studio</string> |
||||||
|
<string name="nav_header_subtitle">android.studio@android.com</string> |
||||||
|
<string name="nav_header_desc">Navigation header</string> |
||||||
|
<string name="action_settings">Settings</string> |
||||||
|
|
||||||
|
<string name="menu_home">Home</string> |
||||||
|
<string name="menu_gallery">Gallery</string> |
||||||
|
<string name="menu_slideshow">Slideshow</string> |
||||||
|
|
||||||
|
<string name="n_nav_header_title">...</string> |
||||||
|
<string name="n_nav_header_subtitle">......</string> |
||||||
|
<string name="n_menu_name_calendar">日历</string> |
||||||
|
<string name="n_menu_name_statistic">统计</string> |
||||||
|
<string name="n_menu_name_setting">设置</string> |
||||||
<string name="s_set_target">目标</string> |
<string name="s_set_target">目标</string> |
||||||
|
<string name="s_set_app">App</string> |
||||||
|
<string name="s_set_backup_restore">备份与恢复</string> |
||||||
|
<string name="s_set_backup">备份</string> |
||||||
|
<string name="s_set_restore">恢复</string> |
||||||
|
<string name="s_set_icon">图标</string> |
||||||
|
<string name="s_set_project">打卡项</string> |
||||||
|
<string name="n_menu_name_icon">ICON</string> |
||||||
|
<string name="icon_name_FontAwesome">FontAwesome</string> |
||||||
|
<string name="n_menu_name_project">打卡项</string> |
||||||
|
<string name="np_project_name">项目</string> |
||||||
|
<string name="np_icon_name">图标</string> |
||||||
|
<string name="np_color_name">颜色</string> |
||||||
|
<string name="np_color_picker">点我选颜色</string> |
||||||
|
<string name="np_button_back">返回</string> |
||||||
|
<string name="np_button_confirm">保存</string> |
||||||
|
<string name="cp_color_confirm">选择该颜色</string> |
||||||
|
<string name="cancel">取消</string> |
||||||
|
<string name="stat_header_list">列表视图</string> |
||||||
|
<string name="stat_header_week">周视图</string> |
||||||
|
<string name="stat_header_month">月视图</string> |
||||||
|
<string name="stat_header_other">其他</string> |
||||||
|
|
||||||
</resources> |
</resources> |
||||||
Loading…
Reference in new issue