NumberPickerとは

上記の様な入力項目です。
一般的には時間等で利用されるのTimePickerみたいなものですが、秒だけ設定したい等といった特殊な場合に対応していません。

Android3.0だとNumberPickerが使える様になったみたいですが、スマホ等をターゲットにするアプリの場合は2.1とかでも動作させる必要があります。

2.1でも利用できるのですが、通常の方法では利用出来ません。
色々調べてると親切なサイトがあったので記載しておきます。

NumberPicker – ogatashiの日記

私はNumberPicker Widget for Android | Quietly Codingを利用してみました。

このライブラリはNumberPickerの関数内にある
private static final int DEFAULT_MAX = 200;
private static final int DEFAULT_MIN = 0;

で最大値と最小値を設定出来ますが、ひとつのプロジェクト内で複数のNumberPickerを使う場合、場所に応じてこの値を変える必要があります。

そこで参考にしたのが下のサイト

gui – Is there a view for inputing integers in A

XMLで


等とidを設定。

そして利用するjava内で

Object o = findViewById(R.id.min10);
Class c = o.getClass();
try
{
Method m = c.getMethod("setRange", int.class, int.class);
m.invoke(o, 0, 9);
}
catch (Exception e)
{
Log.e("", e.getMessage());
}

という感じでid単位でinvoke関数の最小値と最大値を設定すればOKです。