如何用新的 getHour() 替换旧的 getCurrentHour()?
Posted
技术标签:
【中文标题】如何用新的 getHour() 替换旧的 getCurrentHour()?【英文标题】:How to replace old getCurrentHour() with new getHour()? 【发布时间】:2015-08-28 05:50:19 【问题描述】:我有这些代码,并且可以很好地显示 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 告诉我改用 new getHour() 和 getMinute()。
当我在上面的代码中使用它们时,应用程序停止并崩溃。为什么以及如何正确使用它们。
这是 logcat 中的错误: 引起:java.lang.NoSuchMethodError:Landroid/widget/TimePicker类中没有虚拟方法getHour()I;或其超类('android.widget.TimePicker' 的声明出现在 /system/framework/framework.jar:classes2.dex 中)
【问题讨论】:
你要看看this link 如果您使用的是 android.widget.TimePicker,函数是 getHour() 而不是 getHours() 和 getMinute() 不是 getMinutes() 是:新函数是getHour()和getMinute() 【参考方案1】:您可以使用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();
【讨论】:
【参考方案2】:好的,它与模拟器中的新时间函数 getMinute() 和 getHour() 配合得很好,所以问题可能是因为使用了 API。这两个函数需要 API 23。
【讨论】:
【参考方案3】:这个答案就是你所需要的,不要遵循其他指南。进行检查,然后使用timePicker.getCurrentHour
和timePicker.getCurrentHour
这是API 23
下面的。对于 23 岁及以上的用户,请使用 timePicker.getHour
和 timePicker.getMinute
分钟。
【讨论】:
以上是关于如何用新的 getHour() 替换旧的 getCurrentHour()?的主要内容,如果未能解决你的问题,请参考以下文章
grafna如何用新的dashbord覆盖旧的dashbord
如何用新的 Blob 构造函数替换已弃用的 BlobBuilder?
如何用 kevent() 替换 select() 以获得更高的性能?