レイアウトで TimePicker を作成しましたが、24 時間形式で時刻を表示したいと考えています。
手伝って頂けますか?ありがとう。
TimePicker
は、24 時間または AM/PM モードで時刻を選択するためのビューです。setIs24HourView(true)
メソッドはTimePickerで使用できます。
TimePicker
多くの国では慣習が異なるため、デフォルトで 24 時間モードに設定することは必ずしも良い考えではありません。この場合、 を使用しますDateFormat.is24HourFormat(getActivity())
。
最終的なコードは次のようになりますpicker.setIs24HourView(DateFormat.is24HourFormat(this));
。
詳細は次を参照してください。
インフレートした後、ビューから TimePicker インスタンスを取得するだけで、ウィジェットを変更できます。
ID は任意です。
View v=getActivity().getLayoutInflater().inflate(R.layout.dialog_time, null);
TimePicker timePicker=(TimePicker)v.findViewById(R.id.dialog_time_timePicker);
timePicker.setIs24HourView(true);
xml
<TimePicker
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/timePicker" />
ジャワ
TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
アプリケーションがタスクを実行するために費やす時間を設定するためだけに、同じことが必要です。TimePickerDialog クラスを拡張し、最後のコンストラクタ パラメータ boolean is24HourView に True を渡すだけでよいことがわかりました。
public class DurationPickerDialog extends TimePickerDialog {
public DurationPickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute){
super(context, callBack, hourOfDay, minute, true);
}
次に、これを次のように作成するだけです
TimePickerDialog durationPicker = new DurationPickerDialog(getActivity(), this, hour, minute);
durationPicker.setTitle("Duration:");
デフォルトでは、AM/PM 形式で時刻が表示されます。24 時間形式で時刻を変更する場合は、setIs24HourView() メソッドを使用できます。このリンクを参照してください: http://www.androidaspect.com/2012/06/timepicker-view-tutorial.html
一部の人々がすでに言及しているように、パラメーターを true または false に設定するだけです。
timePicker.setIs24HourView(真);
ここからダウンロードするソースコード付きの完全な例を見つけることができます http://www.ahotbrew.com/android-timepicker-example/
または、ユーザーが使用する形式を自分で決定できるようにします。
MainActivty で:
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView outputText= (TextView)findViewById(R.id.outputText);
outputText.setText(hourOfDay + " : "+ minute);
}
新しい Java クラス (TimePickerFragment) では:
public class TimePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(),(TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, android.text.format.DateFormat.is24HourFormat(getActivity()));
}}