Android Spinner OnItemSelectedListener无法正常工作

时间:2011-07-22 10:26:36

标签: android spinner

我创建了一个Spinner并激活了侦听器:

customerListSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){
    public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) {
        // I do some work here
    }
    public void onNothingSelected(AdapterView<?> arg0) {
        isInitRadioGroup = false;
    }
 );

我最初在Spinner中添加了三个值:“搜索”,“员工”,“公司”。 如果用户选择“搜索”,则会显示一个新的ListActivity,并且所选的值将作为结果添加到上面的Spinner中。
像这样,我正在对微调器项的选择执行一些操作。现在,当第一次显示屏幕时,默认显示“搜索”。要触发ListActivity的处理,用户必须再次选择“搜索”。这次,没有调用ItemSelected回调。我的意思是说,如果已经选择了Spinner中的值,那么再次选择相同的值时,不会触发侦听器。

鉴于: 当第一次显示屏幕时,默认显示“搜索”。用户选择值“Employee”(完成此处理,调用onItemSelected,因为先前选择的值不同于用户选择的值)。然后,用户选择值“搜索”。这次调用onItemSelected方法并成功向Spinner添加一个新值。

这是Android的错误。我已经检查过我的代码中没有错误。

1 个答案:

答案 0 :(得分:-2)

尝试使用微调器,如下所示

Spinner genspin=(Spinner)findViewById(R.id.gender);

ArrayAdapter<String> genadap=new ArrayAdapter(this,R.layout.spinneritems,String_array);
genadap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
genspin.setAdapter(genadap);
genspin.setOnItemSelectedListener(this);

然后您可以将所选值作为

genspin.getSelectedItem().toString()