使用此代码(改编自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
是您所在的视图的名称)来传递适当的实例。