これが正しい方法かどうかわかりません。この問題を解決するには助けが必要です。NumberPicker から数字を選択したいです。選択後、setOnValueChangedListener が値を取得して for ループを実行し、結果の値を arraylist に格納できることを期待しています。次に、ループ値をスピナーに表示します。しかし、「コンストラクターArrayAdapter(....)を解決できません」というエラーメッセージが表示され、アプリを実行すると、次のエラーメッセージが表示されます:
「エラー:(79, 58) エラー: ArrayAdapter(,int,List) コンストラクター ArrayAdapter.ArrayAdapter(Context,int,int,List) に適したコンストラクターが見つかりませんでした (実際の引数リストと仮引数リストの長さが異なります) コンストラクター ArrayAdapter .ArrayAdapter(Context,int,List) は適用されません (メソッド呼び出し変換によって実引数を Context に変換することはできません) コンストラクター ArrayAdapter.ArrayAdapter(Context,int,int,Object[]) は適用されません (実引数リストと仮引数リストが異なります)長さ) コンストラクター ArrayAdapter.ArrayAdapter(Context,int,Object[]) は適用されません (メソッド呼び出し変換によって実際の引数を Context に変換することはできません) コンストラクター ArrayAdapter.ArrayAdapter(Context,int,int) は適用されません (メソッド呼び出し変換によって実引数を Context に変換することはできません) コンストラクター ArrayAdapter.ArrayAdapter(Context,int) は適用されません (実引数リストと仮引数リストの長さが異なります)"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_item);
final List<Integer> resultInteger = new ArrayList<Integer>(); // to store the integer value
final Spinner hourSpinner = (Spinner) findViewById(R.id.hourSpinner);
final NumberPicker HourPicker = (NumberPicker) findViewById(R.id.HourNumberPicker);
HourPicker.setMinValue(9);
HourPicker.setMaxValue(15);
HourPicker.setWrapSelectorWheel(false);
HourPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
Integer value = HourPicker.getValue();
for (int index = 0; index == value; index++)
{
resultInteger.add(index);
}
ArrayAdapter<CharSequence> hourAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, resultInteger);
hourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
hourSpinner.setAdapter(hourAdapter);
}
});
}
ありがとうございました。