使用此代码(改编自here)时,出现以下错误:


  构造函数ArrayAdapter(new
  AdapterView.OnItemSelectedListener(){},
  int,String [])未定义


谁能帮助纠正这一点?谢谢

private void setDynamicSpinnerBE() {
    beSpinner = (Spinner) findViewById(R.id.spBE);
    final String[] itemsSpinner2;
    lensSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            Integer focalLength = (Integer) parent.getAdapter().getItem(
                    position);
            itemsSpinner2 = getBellowsExtension(focalLength, maxBellows,
                    precision);

            ArrayAdapter<CharSequence> beAdapter = new ArrayAdapter<CharSequence>(
                    this, android.R.layout.simple_spinner_item,
                    itemsSpinner2);
            beAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            beSpinner.setAdapter(beAdapter);

        }

        public void onNothingSelected(AdapterView<?> parent) {
            beSpinner.setAdapter(null);
        }
    }

    );
    ...
}

最佳答案

在您的新ArrayAdapter的构造函数中的以下行:

ArrayAdapter<CharSequence> beAdapter = new ArrayAdapter<CharSequence>(this,


this指向您所在的OnItemSelectedListener类的当前实例,而不是父视图,这是发生问题的原因,因为ArrayAdapter没有匹配的构造函数。您应该尝试使用MyParentView.this(其中MyParentView是您所在的视图的名称)来传递适当的实例。

10-07 19:33
查看更多