Tagbangers Blog

[Android] TimePickerで現在時刻を取得する

TimePickerで現在時刻を取得しようとしたら少しはまったので。

TimePickerとはこれです。


現在時刻の取得にTimePickerクラスのgetCurrentHour()、getCurrentMinute()を使おうと思ったら、、、非推奨。

調べてみたら、SDK23からgetHour()、getMinute()を推奨とのこと。

hour = timePicker.getHour();
minute = timePicker.getMinute();

素直に使ってみたら、アプリが落ちる。ログ見るとSDKのバージョンが合ってないよと怒られた。

また調べてみたら、SDKのバージョンで場合分けが必要と!

次のようにして解決!たったこれだけのしょーもない問題でした( ゚-Å)

int hour;
int minute;
int currentApiVersion = Build.VERSION.SDK_INT;
if (currentApiVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
    hour = timePicker.getHour();
    minute = timePicker.getMinute();
} else {
    hour = timePicker.getCurrentHour();
    minute = timePicker.getCurrentMinute();
}

ちなみにAPIでは、「public static final int LOLLIPOP_MR1 = 22;」となっております。

SDK23の変数名は「public static final int M = 23;」となってます。Marshmallowだけど変数名Mって、、、笑