web-dev-qa-db-ja.com

設定Android XMLでのTimePicker

XMLファイルでTimePicker時間モードを24時間モードに設定することは可能ですか?または、Javaのみで可能ですか?24時間ピッカーを備えたレイアウトを作成したいのですが、そのような属性が見つかりません。

19
Pijusn

いいえ、XMLで24時間モードを設定することはできません。使用する必要があります

MyTimePicker.setIs24HourView(boolean);
43
Guillaume

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"/>
11
FINARX

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
1
reza.cse08