我正在使用NumberPicker并针对 API 11 及更高版本(3.0 及更高版本),所以我使用受支持的NumberPicker。这是在计时器应用程序中使用的。我希望能够随意隐藏递增和递减按钮,以便按钮在隐藏时不会占用布局中的空间。我试图这样做:
View increment = secs.getChildAt(0);
increment.setVisibility(View.GONE);
View decrement = secs.getChildAt(2);
decrement.setVisibility(View.GONE);
其中 secs 是我的 NumberPicker 在计时器中的秒数。如果我尝试隐藏它显示数字的位置(一个 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);
}
});