2012-05-30 3 views
6

Я использую NumberPicker и таргетинг API 11 и выше (3.0 и выше), поэтому я пользуюсь поддерживаемым NumberPicker. Это используется в приложении таймера. Я хочу иметь возможность скрывать кнопки увеличения и уменьшения по желанию, чтобы кнопки не занимали места в макете при скрытии. Я попытался сделать это:Android NumberPicker скрывает кнопки увеличения и уменьшения

View increment = secs.getChildAt(0); 
increment.setVisibility(View.GONE); 
View decrement = secs.getChildAt(2); 
decrement.setVisibility(View.GONE); 

где secs - мой номерчик в течение нескольких секунд в таймере. Если я попытаюсь скрыть место, где он отображает номер (виджет EditText), он скрывается просто отлично, но приведенный выше код ничего не делает.

Итак, мой вопрос в том, как я могу скрыть кнопки увеличения и уменьшения? Мне бы очень хотелось, чтобы я не делал свой собственный сборщик чисел, как я читал в некоторых других сообщениях, но если это действительно единственный способ, я готов попробовать.

Спасибо!

Дополнительный код в запросе. код в методе OnClick для при запуске секундомера:

if (stopPush) 
{ 
startTime = System.currentTimeMillis() - elapsedTime; 
} 
else 
{ 
startTime = System.currentTimeMillis(); 
} 
mHandler.removeCallbacks(startTimer); 
mHandler.postDelayed(startTimer, 0); 

код, который обрабатывает секундомера способности:

private Runnable startTimer = new Runnable() 
{ 
public void run() 
{ 
    elapsedTime = System.currentTimeMillis() - startTime; 
    updateTimer(elapsedTime); 
    mHandler.postDelayed(this, REFRESH_RATE); 
} 
}; 

Код для расчета и обновления секундомера время:

this.millis = (int) (elapsedTime/100); 
this.seconds = (int) (elapsedTime/1000); 
this.minutes = (seconds/60); 
this.hours = (minutes/60); 
millis = millis % 10; 
seconds = seconds % 60; 
minutes = minutes % 60; 
hours = hours % 24; 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    hrs.setValue(hours); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    mins.setValue(minutes); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    secs.setValue(seconds); 
} 
}); 
runOnUiThread(new Runnable() 
{ 
public void run() 
{ 
    mills.setValue((int) millis); 
} 
}); 

ответ

4

Когда вы не укажите минимальное и максимальное значение на цифровом пиктограмме, кнопки (обычно) не отображаются.

+0

Если я не предоставил минимальные и максимальные значения, я столкнусь с какими-либо другими проблемами? Существует ли минимальный и максимальный значения по умолчанию, если они не предусмотрены, что может привести к сбоям? Спасибо за предложение! Это определенно достаточно просто, пока все остальное работает правильно. –

+0

Я попробовал ваше предложение, и кнопки действительно исчезают, но нет эффекта, когда я пытаюсь вызвать setValue, чтобы изменить значение numberpicker. Он просто остается на 0. –

+0

Это не то, что я ожидал. Не могли бы вы опубликовать какой-то код о том, что вы делаете? – barrel

0

Разработчик сайта говорит,

NumberPicker это виджет, который позволяет пользователю выбрать число из заданного диапазона. Есть два варианта этого виджета, и тот, который представлен пользователю, зависит от текущей темы.

Если текущая тема взята из Theme, виджет представляет текущее значение как редактируемое поле ввода с кнопкой увеличения и кнопкой уменьшения. Длительное нажатие кнопок позволяет быстро изменить текущее значение. Нажатие на поле ввода позволяет ввести желаемое значение.

Если текущая тема получена от Theme_Holo или Theme_Holo_Light, виджет представляет текущее значение как редактируемое поле ввода с меньшим значением выше и большим значением ниже. Нажатие на меньшее или большее значение выбирает его, оживляя числовую ось вверх или вниз, чтобы сделать выбранное значение текущим. Перемещение вверх или вниз допускает множественные приращения или уменьшения текущего значения. Длительное нажатие на меньшие и большие значения также позволяет быстро изменить текущее значение. Нажатие на текущее значение позволяет ввести желаемое значение.

Итак, вы можете попробовать изменить тему.

Смежные вопросы