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);
}
});