7
Nov 2015
by
内立 良介
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って、、、笑