1

TimePicker Dialog は、アクティビティが開いたままの場合は変更されない現在の時刻ではなく、onCreate 時刻を取得します...アクティビティが開始されたときだけでなく、常に現在の時刻をダイアログに表示したいと考えています。私は現在、onCreateで以下を使用しています:

    final Calendar onscene = Calendar.getInstance();
    buildingfireonsceneHour = onscene.get(Calendar.HOUR_OF_DAY);
    buildingfireonsceneMinute = onscene.get(Calendar.MINUTE);
4

1 に答える 1

2

ダイアログを開く直前に updateTimer() 関数に現在の時刻を渡します。次に例を示します。

    mTimePickerDialog = new TimePickerDialog(this, null, 0, 0, false);

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {
            Calendar calendar = Calendar.getInstance();
            mTimePickerDialog.updateTime(calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE));
            mTimePickerDialog.show();
        }
    });

** 添加 **

次のように onPrepareDialog() 関数をオーバーライドしたいと思います。

@Override
protected void onPrepareDialog (int id, Dialog dialog, Bundle args) {
    super.onPrepareDialog(id, dialog, args);
    if(id != DATE_DIALOG_ID) {
        final Calendar c = Calendar.getInstance();
        ((TimePickerDialog) dialog).updateTime(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE));
    }
}
于 2012-05-06T23:05:32.000 に答える