我正在研究Big Nerd Ranch Android编程书.我正在研究CriminalIntent项目,我正在尝试设置DatePicker和TimePicker来设置"犯罪"的日期和时间.我的DatePicker对话框工作正常,当日期更改,一切正常更新,没有问题.
问题出现在TimePicker中.由于某种原因,onTimeChangedListener似乎没有触发,因此时间不能正确更新.我已经在我的代码中复制了将侦听器设置为TimePicker.我有一个日志声明,当我改变时间时,它永远不会触发,这就是为什么我认为这就是问题所在.
TimePicker timePicker = (TimePicker) v.findViewById(R.id.dialog_time_picker);
timePicker.setCurrentHour(hour);
timePicker.setCurrentMinute(minute);
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// Get the date
date = new GregorianCalendar(year, month, day, hourOfDay, minute).getTime();
Log.d("TimePickerFragment", "hour: " + hourOfDay + "; minute: " + minute);
// Save this date
getArguments().putSerializable(EXTRA_TIME, date);
}
});
Run Code Online (Sandbox Code Playgroud)
以下是我设置小时和分钟的代码:
date = (Date) getArguments().getSerializable(EXTRA_TIME);
// Create a calendar to get hour, minute, and AM/PM info
cal = Calendar.getInstance();
cal.setTime(date);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int amPm = cal.get(Calendar.AM_PM); // 0 = AM 1 = PM
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH);
day = cal.get(Calendar.DAY_OF_MONTH);
Run Code Online (Sandbox Code Playgroud)
如果您需要任何其他代码,请告诉我们
在Lollipop(5.0)之前,每次更改时间时,TimePicker视图都会触发onTimeChanged事件,从而允许应用程序动态响应选择器当前指定的时间.
在棒棒糖中,Timepicker随之而来
机器人:timePickerMode = "时钟"
在时钟模式下,当时间改变时,onTimeChanged事件不会被触发.
所以最好的方法是更好的去 android:timePickerMode ="spinner"
<TimePicker
android:id="@+id/timepick_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:timePickerMode="spinner"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |