2

Hi everybody I am struggling with the idea of changing the time in time picker dialog upon when it is shown.

Here is a quotation from Android SDK reference regarding onPrepareDialog method

マネージド ダイアログが表示される前に準備する機会を提供します。デフォルトの実装では、互換性のために onPrepareDialog(int, Dialog) を呼び出します。表示されるたびにアプリケーションの状態に基づいてマネージド ダイアログを更新する必要がある場合は、これをオーバーライドします。たとえば、タイム ピッカー ダイアログを現在の時刻で更新したい場合があります。スーパークラスの実装を呼び出す必要があります。デフォルトの実装では、このアクティビティをダイアログの所有者アクティビティとして設定します

.

onCreateDialogメソッドは、作成されたダイアログをパラメーターとしてonPrepareDialogに渡しますが、このダイアログの時間と分を実際に変更するにはどうすればよいですか?

ありがとう

わかりました、私は答えを見つけました。これが PreferenceActivity からの私のコードの一部です:

protected void onPrepareDialog(int id, Dialog dialog) {

    if (id == DIALOG_MAX_AGE) {
        SharedPreferences myPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        int time = myPref.getInt(getString(R.string.pr_maxtmagekey), 15);
        int h = time / 100;
        int m = time - h * 100;

        ((TimePickerDialog)dialog).updateTime(h, m);

    }
}

updateTime がそれを行います。

4

1 に答える 1

4

次のようなことを試すことができます:

onCreate() または必要な場所で、典型的な Java コードを使用して現在の時刻を取得します。

Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);

そして、タイムピッカーを設定するときは、次のようにします。

... new DatePickerDialog(this, aDateListener, year, month, day);

次に、時間ピケットを開くと、常に現在の時間が表示されます。

于 2011-05-20T16:22:04.743 に答える