XMLファイルでTimePicker時間モードを24時間モードに設定することは可能ですか?または、Javaのみで可能ですか?24時間ピッカーを備えたレイアウトを作成したいのですが、そのような属性が見つかりません。
いいえ、XMLで24時間モードを設定することはできません。使用する必要があります
MyTimePicker.setIs24HourView(boolean);
TimePicker
をサブクラス化して24時間バージョンを取得し、XMLファイルでそのサブクラスを適切なパッケージ名で使用することで可能です。
public class TimePicker24Hours extends TimePicker {
public TimePicker24Hours(Context context) {
super(context);
init();
}
public TimePicker24Hours(Context context,
AttributeSet attrs) {
super(context, attrs);
init();
}
public TimePicker24Hours(Context context,
AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
setIs24HourView(true);
}
}
レイアウトに追加できます
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:dt_codecomponents="http://schemas.Android.com/apk/res/my.app.package"
...
<my.app.package.style.TimePicker24Hours
Android:id="@+id/timePicker1"
Android:layout_width="wrap_content"/>
Javaファイルから設定できます。
xml
<TimePicker
Android:layout_width="300dp"
Android:layout_height="300dp"
Android:id="@+id/timePicker" />
Java
TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true); // to set 24 hours mode
timePicker.setIs24HourView(false); // to set 12 hours mode