我创建了一个继承自
Android.Widget.TimePicker
的类。
出于设计原因,包含文本表示的标题被隐藏。
当我运行应用程序并且用户选择小时时,选择器切换为选择分钟。一旦到达那里,额外点击时钟只会改变分钟选择。
但是,由于必须删除标题,因此用户无法单击时间部分的
HOUR
,因此时钟无法再次返回选择小时。
问题: 有没有一种编程方式可以将选取器再次返回到
hour selection
?
试试这个。通过这些方法,您可以选择并显示分钟或小时视图。
private void setMinuteView() {
try {
Method m = TimePicker.class.getDeclaredMethod("getMinuteView");
m.setAccessible(true);
View view = (View) m.invoke(simpleTimePicker);
view.performClick();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
private void setHourView() {
try {
Method m = TimePicker.class.getDeclaredMethod("getHourView");
m.setAccessible(true);
View view = (View) m.invoke(simpleTimePicker);
view.performClick();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
如果有人仍然需要解决方案:
在此解决方案中,我们需要标头...但我们可以将其可见性设置为“GONE”。
我们需要做的就是以编程方式执行点击标题的时间。
ViewGroup viewGroup = (ViewGroup) this.getChildAt(0);
ViewGroup header = viewgroup.getChildAt(0);
View hourElement = header.getChildAt(0);
hourElement.performClick();
this.getChildAt(0);
我在自定义 TimePicker 类中使用此方法,但可能在“普通”类中 timepicker.getChildAt(0) 也应该可以工作;