我创建了一个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的错误。我已经检查过我的代码中没有错误。
答案 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()