android - 如何保存 timePickerDialog 中的 hourOfDay 和分钟以将其与其他变量进行比较?
问题描述
我想从用户输入的 TimePickerDialog 中获取 hourOfDay 和分钟,但值在 onTimeSet 方法中显示为零。
LoadTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calendar = Calendar.getInstance();
currentHour = calendar.get(Calendar.HOUR_OF_DAY);
currentMinute = calendar.get(Calendar.MINUTE);
timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {
if (hourOfDay >= 12) {
amPm = "PM";
} else {
amPm = "AM";
}
LoadTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
}
}, currentHour, currentMinute, false);
Log.d("INT","val: " + hour);
timePickerDialog.show();
}
});
我想保存这两个变量并执行一些 if-else 条件。提前致谢。
解决方案
您正在使用日志外部onTimeSet()
方法。
LoadTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calendar = Calendar.getInstance();
currentHour = calendar.get(Calendar.HOUR_OF_DAY);
currentMinute = calendar.get(Calendar.MINUTE);
timePickerDialog = new TimePickerDialog(MainActivity.this, new
TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {
if (hourOfDay >= 12) {
amPm = "PM";
} else {
amPm = "AM";
}
Log.d("INT","val: " + hourOfDay);
LoadTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
}
}, currentHour, currentMinute, false);
timePickerDialog.show();
}
});`
为了将值存储在 中string
,java string.valueOf()
方法将不同类型的值转换为字符串。例如:
String hourOfDayInString = String.valueOf(hourOfDay);
推荐阅读
- constructor - 如何从静态方法调用类构造函数?
- php - 追加不插入值
- node.js - 如何在 node_js 和 mongodb 中使用 _id 更新数据
- c# - 有没有办法用可变数量的块创建片段?
- javascript - 我如何知道我是否有权访问我收到一些图像的网站?
- javascript - 如何在新选项卡中使用查询参数打开 router.navigate /router 链接
- reactjs - 如何从另一个组件继承样式?
- laravel - Laravel Cashier Invoice 中的日期问题
- android - 即使在 Flutter 中授予权限,Lollipop 后灯包也没有打开手电筒
- python - 有没有办法使用 pynput 输入标点符号?