1

この質問は、AndroidでのTimePickerの動作に関するものです。

時間と分の値を取得するには、getCurrentHour()とgetCurrentMinute()を使用します。

最初に、登録されていない場所で電話のキーボードを使用してユーザーが行った変更で、getCurrentHour()またはgetCurrentMinute()を呼び出しても、ウィジェット内のtexboxで変更された値が表示されないことがわかりました。これは、setAddStatesFromChildren(true);を使用してすぐに解決されました。これで私はそれらの変更を取得します。

さて、私の問題は、タイムピッカーがフォーカスを失った場合にのみ、これらの変更が登録されることです。そのため、ボタン内のタイムピッカーから値を取得すると、フォーカスが失われていないため、間違った値が取得されます。何か助けはありますか?

必要なものは次のとおりです。タイムピッカーにフォーカスを緩め、テキストボックスに実際に書き込まれた値を取得するように強制できますか?

4

2 に答える 2

2

私はそれを解決し、それを必要とする人のためにここに書きます。「Tarun Maheshwari」のおかげで、必要なものが見つかりました。

onCreate で次のようにします。

MyTimerPicker.setAddStatesFromChildren(true);

onClick メソッドで値を取得するときは、次のようにします。

MyTimerPicker.clearFocus();
int iHour = MyTimerPicker.getCurrentHour();
int iMinute = MyTimerPicker.getCurrentMinute();
于 2012-05-12T12:08:27.003 に答える
0

onTimeChanged コールバックを取得した後、timepicker ビューで clearFocus() を呼び出します。

于 2012-05-10T19:18:17.630 に答える