我的android有问题。我将数据从适配器添加到微调器,然后我在位置0上的项目上设置选择,然后我创建OnItemSelectedListener
并触发它但我不知道为什么......
onCreate方法:
this.spinner = (Spinner)findViewById(R.id.spinner);
this.spinner.setAdapter(MyAdapter.GetAdapter());
this.spinner.setSelection(0);
this.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//do some things
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
也许这里有问题,我也尝试删除监听器,更改选择,然后添加监听器。也许我在这里做错了:
AdapterView.OnItemSelectedListener listener = this.spinner.getOnItemSelectedListener();
this.spinner.setOnItemSelectedListener(null);
this.spinner.setSelection(((SpinnerAdapter) this.spinner.getAdapter()).getElementIndexByTitle(array.get("ProductName")));
listener.onItemSelected(null, null, -1, -1);
this.spinner.setOnItemSelectedListener(listener);
它似乎也会在以下情况后触发事件:this.spinner.setOnItemSelectedListener(listener);
也许是否有可能在不触发OnItemSelected
的情况下选择项目?
答案 0 :(得分:0)
我发现在AdapterView中有一个SelectionNotifier,它会自动发出声音。所以我需要记住最后的选择索引,然后将其与OnItemSelected
中的位置进行比较。