0

我不确定这是否正确,我需要一些帮助来解决这个问题。我想从 NumberPicker 中选择一个数字。选择后,我希望 setOnValueChangedListener 能够捕获值并运行 for 循环并将结果值存储在数组列表中。接下来,我希望循环值显示在我的微调器中。但我收到一条错误消息,说“无法解析构造函数 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);
    }
    });
}

谢谢你。

4

2 回答 2

1

从 更改thisYourActivity.this

new ArrayAdapter(this, ...)

new ArrayAdapter<Integer>(YourActivity.this, ...)

检查此代码。

hourPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
        @Override
        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
            Integer value = hourPicker.getValue();

            resultInteger.clear();
            for (int index = 0; index < value; index++) {
                resultInteger.add(index);
            }

            ArrayAdapter<Integer> hourAdapter = new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_spinner_item, resultInteger);
            hourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            hourSpinner.setAdapter(hourAdapter);
        }
    });
于 2016-04-05T04:55:24.103 回答
0

@topacoboy on scroll 你想在微调器中添加数字吗?尝试以下代码。

HourPicker = (NumberPicker) findViewById(R.id.numberPicker);
    HourPicker.setMinValue(9);
    HourPicker.setMaxValue(15);
    HourPicker.setWrapSelectorWheel(false);
     resultInteger = new ArrayList<Integer>();
    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(value);
           //}

            ArrayAdapter<Integer> hourAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_item, resultInteger);
            hourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            hourSpinner.setAdapter(hourAdapter);
        }
    });
于 2016-04-05T05:19:55.487 回答