我有这些代码并且可以很好地显示timePicker的时间。代码使用getCurrentHour和getCurrentMinute。
public void setTime(View view) {
int hour = timePicker1.getCurrentHour();
int min = timePicker1.getCurrentMinute();
showTime(hour, min);
}
public void showTime(int hour, int min) {
if (hour == 0) {
hour += 12;
format = "AM";
}
else if (hour == 12) {
format = "PM";
} else if (hour > 12) {
hour -= 12;
format = "PM";
} else {
format = "AM";
}
time.setText(new StringBuilder().append(hour).append(" : ").append(min)
.append(" ").append(format));
}
android Studio告诉我使用新的getHour()和getMinute()代替。
当我在app上面的代码中使用它们时停止并崩溃。为什么以及如何正确使用它们。
这是logcat中的错误: 引起:java.lang.NoSuchMethodError:没有虚拟方法getHour()我在类Landroid / widget / TimePicker中;或其超级类('android.widget.TimePicker'的声明出现在/system/framework/framework.jar:classes2.dex)
答案 0 :(得分:10)
您可以使用android.os.Build.VERSION.SDK_INT
检查SDK版本:
int hour = 0;
int min = 0;
int currentApiVersion = android.os.Build.VERSION.SDK_INT;
if (currentApiVersion > android.os.Build.VERSION_CODES.LOLLIPOP_MR1){
hour = timePicker1.getHour();
min = timePicker1.getMinute();
} else {
hour = timePicker1.getCurrentHour();
min = timePicker1.getCurrentMinute();
}
答案 1 :(得分:0)
好的,它适用于模拟器中的新时间函数getMinute()和getHour(),因此问题可能是因为使用了API。这些两个功能需要API 23。
答案 2 :(得分:0)
这个答案是你所需要的,不要遵循其他指南。进行检查,然后使用timePicker.getCurrentHour
和timePicker.getCurrentHour
这是API 23
以下。 23岁及以上使用timePicker.getHour
和timePicker.getMinute
分钟。