7

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

2 に答える 2

4

numberpicker で最小値と最大値を指定しない場合、ボタンは (通常) 表示されません。

于 2012-06-12T18:55:27.500 に答える
0

開発者サイトによると、

NumberPicker は、ユーザーが事前定義された範囲から数値を選択できるようにするウィジェットです。このウィジェットには 2 つのフレーバーがあり、どちらがユーザーに表示されるかは、現在のテーマによって異なります。

現在のテーマがウィジェットから派生しThemeている場合、現在の値が編集可能な入力フィールドとして表示され、上に増分ボタン、下に減分ボタンがあります。ボタンを長押しすると、現在の値をすばやく変更できます。入力フィールドをタップすると、目的の値を入力できます。

現在のテーマがから派生した場合、Theme_HoloまたはTheme_Holo_Lightウィジェットが現在の値を編集可能な入力フィールドとして提示し、上に小さい値、下に大きい値を持つ場合。小さい値または大きい値をタップすると、数値軸が上下にアニメーション化されて選択された値が現在の値になります。上下にフリングすると、現在の値の複数の増分または減分が可能になります。小さい値と大きい値を長押しすると、現在の値をすばやく変更することもできます。現在の値をタップすると、目的の値を入力できます。

そのため、テーマを変更してみてください。

于 2015-04-12T11:46:24.583 に答える