【发布时间】:2011-07-22 10:26:35
【问题描述】:
我创建了一个 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 中添加了三个值:“Search”、“Employee”、“Company”。
如果用户选择“搜索”,则会显示一个新的 ListActivity,并将所选值添加到上面的 Spinner 作为结果。
像这样,我正在对微调器项目的选择执行一些操作。现在,第一次显示屏幕时,默认显示“搜索”。要触发 ListActivity 的处理,用户必须再次选择“搜索”。这一次,没有调用 ItemSelected 回调。我的意思是说,如果 Spinner 中的某个值已经被选中,那么在再次选择相同的值时,不会触发监听器。
鉴于: 首次显示屏幕时,默认显示“搜索”。用户选择值“Employee”(已完成处理,调用 onItemSelected,因为先前选择的值与用户选择的值不同)。然后用户选择值“搜索”。这次调用了 onItemSelected 方法,并成功为 Spinner 添加了一个新值。
这是 Android 的错误。我检查了我的代码中没有错误。
【问题讨论】: