以编程方式将 TimePicker 切换回小时设置模式

问题描述 投票:0回答:2

我创建了一个继承自

Android.Widget.TimePicker
的类。

出于设计原因,包含文本表示的标题被隐藏。

当我运行应用程序并且用户选择小时时,选择器切换为选择分钟。一旦到达那里,额外点击时钟只会改变分钟选择。

但是,由于必须删除标题,因此用户无法单击时间部分的

HOUR
,因此时钟无法再次返回选择小时。

问题: 有没有一种编程方式可以将选取器再次返回到

hour selection

android xamarin android-timepicker
2个回答
0
投票

试试这个。通过这些方法,您可以选择并显示分钟或小时视图。

 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();
        }
    }

0
投票

如果有人仍然需要解决方案:

在此解决方案中,我们需要标头...但我们可以将其可见性设置为“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) 也应该可以工作;

© www.soinside.com 2019 - 2024. All rights reserved.