我试图从 timePicker
获取小时
和分钟
的选定值
,然后从用户设备获取当前系统时间
。之后,我需要减去
选择的时间 - time.now
,然后向用户显示闹钟响起之前的剩余时间。
但是应用程序崩溃了,我无法理解。
@TargetApi(Build.VERSION_CODES.M)
public void onClickAlarmOn(View v) {
final Calendar c = Calendar.getInstance();
TimePicker alarm_time_picker = (TimePicker) findViewById(R.id.timePicker);
int hour = alarm_time_picker.getHour(); //get selected hour
int minute = alarm_time_picker.getMinute(); //get selected minute
int hour_now = c.get(Calendar.HOUR); //get system's hour
int minute_now = c.get(Calendar.MINUTE); //get system's minute
int hour_result = hour - hour_now; //subtract the time selected by time.now of system
int minute_result = minute - minute_now;
String hour_result_string = String.valueOf(hour_result); //convert to string to display
String minute_result_string = String.valueOf(minute_result);
setToast_result("Alarm set to " + hour_result_string + " hours " + minute_result_string + " minutes");
}
谢谢!
最佳答案
首先,我在 Lollipop Device
中运行您的代码,但与您的输出相同应用程序崩溃。
然后我阅读了文档 http://developer.android.com/reference/android/widget/TimePicker.html
在 API 23 中
仅供引用。
getCurrentHour()
此方法在 API 级别 23 中已弃用。使用 getHour()
getCurrentMinute()
此方法在 API 级别 23 中已弃用。使用 getMinute()
现在我更改设备并在 MarshMallow
中运行,它工作正常。
以这种方式使用代码:
final Calendar c = Calendar.getInstance();
TimePicker alarm_time_picker = (TimePicker) findViewById(R.id.timePicker);
alarm_time_picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
int hour = alarm_time_picker.getHour(); //get selected hour
int minute = alarm_time_picker.getMinute();
int hour_now = c.get(Calendar.HOUR); //get system's hour
int minute_now = c.get(Calendar.MINUTE); //get system's minute
int hour_result = hour - hour_now; //subtract the time selected by time.now of system
int minute_result = minute - minute_now;
String hour_result_string = String.valueOf(hour_result); //convert to string to display
String minute_result_string = String.valueOf(minute_result);
setToast_result("Alarm set to " + hour_result_string + " hours " + minute_result_string + " minutes");
}
关于java - TimePicker 在获取分钟和小时时导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790817/