Я использую 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);
}
});
Если я не предоставил минимальные и максимальные значения, я столкнусь с какими-либо другими проблемами? Существует ли минимальный и максимальный значения по умолчанию, если они не предусмотрены, что может привести к сбоям? Спасибо за предложение! Это определенно достаточно просто, пока все остальное работает правильно. –
Я попробовал ваше предложение, и кнопки действительно исчезают, но нет эффекта, когда я пытаюсь вызвать setValue, чтобы изменить значение numberpicker. Он просто остается на 0. –
Это не то, что я ожидал. Не могли бы вы опубликовать какой-то код о том, что вы делаете? – barrel