Spinner2的基础上选择的微调1的动态更新基础上、动态

2023-09-03 21:06:24 作者:王妃°轻狂┓

在使用此code(摘自here)我得到以下错误:

  

构造ArrayAdapter(新   AdapterView.OnItemSelectedListener(){},   INT,字符串[])未定义

任何人都可以帮助纠正呢?谢谢

 私人无效setDynamicSpinnerBE(){
    beSpinner =(微调)findViewById(R.id.spBE);
    最终的String [] itemsSpinner2;
    lensSpinner.setOnItemSelectedListener(新OnItemSelectedListener(){

        公共无效onItemSelected(适配器视图<>母公司视图中查看,
                INT位置,长的id){
            整型长焦点=(整数)parent.getAdapter()的getItem(
                    位置);
            itemsSpinner2 = getBellowsExtension(长焦点,maxBellows,
                    precision);

            ArrayAdapter< CharSequence的> beAdapter =新的ArrayAdapter< CharSequence的>(
                    对此,android.R.layout.simple_spinner_item,
                    itemsSpinner2);
            beAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            beSpinner.setAdapter(beAdapter);

        }

        公共无效onNothingSelected(适配器视图<>母公司){
            beSpinner.setAdapter(空);
        }
    }

    );
    ...
}
 

解决方案 时间微调器

在构造新的 ArrayAdapter 以下行:

  ArrayAdapter< CharSequence的> beAdapter =新的ArrayAdapter< CharSequence的>(这一点,
 

指向 OnItemSelectedListener 类,你是在和不父视图当前的情况下,这是问题出现时,因为 ArrayAdapter 没有匹配的构造。你应该尝试使用 MyParentView.this (其中 MyParentView 是视图的名字你是),而不是传递相应的实例。

In using this code (adapted from here) I get the following error:

The constructor ArrayAdapter(new AdapterView.OnItemSelectedListener(){}, int, String[]) is undefined

Can anyone help correct this? Thanks

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);
        }
    }

    );
    ...
}

解决方案

In the constructor to your new ArrayAdapter on the following line:

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

this points to the current instance of the OnItemSelectedListener class you are in and not the parent view, this is where the problem occurs because ArrayAdapter does not have a matching constructor. You should try using MyParentView.this (where MyParentView is the name of the view you are in) instead to pass the appropriate instance.