2

TimePickerDialog に問題があります。最初に、ユーザーのデバイスの時刻が 12 時間形式か 24 時間形式かを検出します。

…
String format;
…
if (DateFormat.is24HourFormat(this)) {
Log.i("control","Format 24");
format=("24");
} else {
 Log.i("control","Format 12");
format=("12");
}
…

ここで、私の意図は、形式に応じて、午前または午後のオプションを使用して TimePicker を表示することです。

…
if(format.equals("24"){
view.setIs24HourView(true);
} else {
view.setIs24HourView(true);
} …

これは、TimePickerDialog の完全なコードです。

public class AlarmPreferencesActivity extends ListActivity
…
TimePickerDialog timePickerDialog = new TimePickerDialogs(this, new TimePickerDialog.OnTimeSetListener(){

            @Override
            public void onTimeSet(TimePicker view, int hours, int minutes) {

                Calendar newAlarmTime = Calendar.getInstance();
                newAlarmTime.set(Calendar.HOUR_OF_DAY, hours);
                newAlarmTime.set(Calendar.MINUTE, minutes);
                newAlarmTime.set(Calendar.SECOND, 0);
                alarm.setAlarmTime(newAlarmTime);
                alarmPreferenceListAdapter
                .setMathAlarm(getMathAlarm());
                alarmPreferenceListAdapter
                .notifyDataSetChanged();

            }},
            alarm.getAlarmTime().get(Calendar.HOUR_OF_DAY),
            alarm.getAlarmTime().get(Calendar.MINUTE), true);


        timePickerDialog.setCancelable(true);
        timePickerDialog.setCustomTitle(getLayoutInflater().inflate(R.layout.custom_hours, null));
        timePickerDialog.show();
        }

view.setIs24HourView (true)私の問題は、またはをどこに含めるかわからないこと(false)です。多くのバリエーションを試しましたが、何も機能しません。情報を検索しましたが、成功しませんでした。

4

2 に答える 2

7

TimePicker を現在の時刻を 24 時間形式で正しく初期化するには、次のようにします。

import java.util.Calendar;

timePicker.setIs24HourView(true);
timePicker.setCurrentHour(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));

そうしないと、Android のバグにより、ピッカーが誤った時間 (14 ではなく 2 など) で開始されます。お役に立てれば

于 2013-11-15T20:45:38.023 に答える