选择后创建的监听器触发事件

时间:2015-09-06 21:10:10

标签: java android events listener

我的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的情况下选择项目?

1 个答案:

答案 0 :(得分:0)

我发现在AdapterView中有一个SelectionNotifier,它会自动发出声音。所以我需要记住最后的选择索引,然后将其与OnItemSelected中的位置进行比较。