如何在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);
}
}
});