如何用新的getHour()替换旧的getCurrentHour()?

时间:2015-08-28 05:50:20

标签: android

我有这些代码并且可以很好地显示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)

3 个答案:

答案 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.getCurrentHourtimePicker.getCurrentHour这是API 23以下。 23岁及以上使用timePicker.getHourtimePicker.getMinute分钟。