【Android】NumberPicker(ナンバーピッカー)の使い方

2019年7月29日

数字を入力する場合には、NumberPicker(ナンバーピッカー)を使うと便利です。
NumberPickerはAPIレベル11から利用が可能です。

基本的な使い方

下記例では、1〜30の数字を選んでボタンを押すと選んだ数字のダイアログが表示されます。

ダイアログはDialogFragmentを使用して表示させています。
DialogFragmentについて

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <NumberPicker
        android:id="@+id/numberPicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
import android.R.integer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.NumberPicker;
import android.app.Activity;
import android.app.DialogFragment;
public class MainActivity extends Activity  implements TestDialogFragment.TestDialogListener ,OnClickListener{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main2);
		
		Button item1 = (Button) findViewById(R.id.button1);
		item1.setOnClickListener(this);
		
		NumberPicker np = (NumberPicker) this.findViewById(R.id.numberPicker);
		np.setMaxValue(30);
		np.setMinValue(1);
		
		np.setValue(20);
	}
	@Override
	public void onPositiveClick(DialogFragment dialog) {
		// TODO 自動生成されたメソッド・スタブ
		Log.d("Test", "onPositiveClick!");
	}
	@Override
	public void onNegativeClick(DialogFragment dialog) {
		// TODO 自動生成されたメソッド・スタブ
		Log.d("Test", "onNegativeClick!");
	}
	@Override
	public void onClick(View v) {
		// TODO 自動生成されたメソッド・スタブ
		switch (v.getId()) {
			case R.id.button1:
				NumberPicker np = (NumberPicker) this.findViewById(R.id.numberPicker);
				DialogFragment newFragment = TestDialogFragment.newInstance("タイトル",np.getValue() + "を選択しました","決定","キャンセル");
				newFragment.show(getFragmentManager(), "test");				
		}
	}
}

使用しているメソッド

上記で使用しているメソッドは下記となります。

メソッド名 説明
void setMaxValue(int maxValue) 最大値を設定する
void setMinValue(int minValue) 最小値を設定する
void setValue(int value) 選択中の値を設定する(初期値など)
int getValue() 現在選択中の値を取得する

参考:Androidデベロッパーサイト(NumberPicker)

スポンサーリンク