ここ数日 Ice Cream Sandwich 機でいくつか微妙な仕様変更というか不具合を見つけて、よくよく調べたところ Honeycomb あたりから入ってるっぽいのでメモ。ちなみに Android 3.1 の実機しかなくてかつエミュレータで調べるの面倒だったので本当に Android 3.0 からなのか 3.1 からなのかはわかりませんすみません。時間がとれたら調べます。

スポンサーリンク

NumberPickerのテキストフィールドの名前が変わってる

Android 3.0 で普通に使用できるようになった NumberPicker だけど、Android 2.3 までは非公開だったからリフレクションでうまいこと使ったりしてる人も多いはず。その人たちは、Android 3.0 あたりからテキストフィールド名だけ変わっているので注意。

回避するとしたらこんな感じ。

TimePickerで24時間表示するときはsetIs24HourViewを先に呼び出さないとおかしくなる

↓これだとOK(普通こうすると思うけど)
[java highlight=”2″]
mTimePicker = (TimePicker) view.findViewById(R.id.alarm_time_picker);
mTimePicker.setIs24HourView(true);
mTimePicker.setCurrentHour(12);
mTimePicker.setCurrentMinute(30);
[/java]

↓これだと設定済みの値を変更するときに変な動きする。Android 2.3 までは普通に動いてくれる
[java highlight=”4″]
mTimePicker = (TimePicker) view.findViewById(R.id.alarm_time_picker);
mTimePicker.setCurrentHour(12);
mTimePicker.setCurrentMinute(30);
mTimePicker.setIs24HourView(true);
[/java]