Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中禁用时间选择器_Android_Timepicker - Fatal编程技术网

如何在Android中禁用时间选择器

如何在Android中禁用时间选择器,android,timepicker,Android,Timepicker,我的布局中有一个计时器。 我需要通过单击按钮或事件来禁用时间选择器(用户无法更改小时或分钟) 如何禁用它 下面的代码片段不起作用 TimePicker tp = (...)findViewById(...); for(int i = 0; i< tp.getChildCount(); i++) ((View)tp.getChildAt(i)).setEnabled(false); TimePicker tp=(…)findViewById(…); 对于(int i=

我的布局中有一个计时器。 我需要通过单击按钮或事件来禁用时间选择器(用户无法更改小时或分钟)

如何禁用它

下面的代码片段不起作用

TimePicker tp = (...)findViewById(...);

  for(int i = 0; i< tp.getChildCount(); i++)
        ((View)tp.getChildAt(i)).setEnabled(false);
TimePicker tp=(…)findViewById(…);
对于(int i=0;i
无论如何这都不是一个好主意,但是如果
TimePicker.setEnabled(false)
不起作用,您可以尝试递归禁用

private void disable(ViewGroup vg)
{
    for (int i = 0; i < vg.getChildCount(); ++i)
    {
        View v = vg.getChildAt(i);
        if (v instanceof ViewGroup)
        {
            disable((ViewGroup)v);
        }
        else
        {
            v.setEnabled(false);
        }
    }
}
private void disable(查看组vg)
{
对于(int i=0;i
只需将TimePicker传递给此方法。

我找到了解决方案:

 for(int i = 0; i < timePickerStartingHour.getChildCount(); i++) {
     Log.i("MyApp", timePickerStartingHour.getChildAt(i).getClass().getName()); //prints LinearLayout

     for (int j = 0; j < ((LinearLayout)timePickerStartingHour.getChildAt(i)).getChildCount(); j++ ) {
         ((LinearLayout)timePickerStartingHour.getChildAt(i)).getChildAt(j).setEnabled(false);
     }

 }
for(int i=0;i

时间选择器只有一个子项是LinearLayout,因此您不能禁用它,您必须禁用LinearLayout内的视图。setEnabled(false)
执行您的操作吗?否。tp.setEnabled(false)不起作用。它只禁用AM、PM按钮,但不禁用小时和分钟控制盘。您是否在特定设备或模拟器上测试此功能?在SGS 2上
TimerPicker.setEnabled(false)
禁用了整个时间选择器。我正在Sony Erricson Xperia P(2.3.7)上测试。不起作用我刚刚在HTS desire HD(ISC)上测试过,它起作用了。在我的Xperia P上仍然不起作用。只有AM、PM被禁用,我可以更改小时和分钟。有没有其他选项,而不是允许你选择一小时和一分钟的时间选择器?我不知道-就是本机选项。但Android Wheel在这方面看起来相当有希望;
    sButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (sButton.isChecked()) {

                timePicker.setEnabled(true);
                timePicker.setIs24HourView(true);
                displayTime.setText(currentTime());
                changeTime.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        displayTime.setText(currentTime());
                    }
                });


            } else {
                timePicker.setEnabled(false);

            }
        }
    });