android - 设置适配器时如何避免让android微调器调用onitemselectedlistener?

标签 android android-spinner

看起来 android 的 Spinner 类(可能还有一般的 ListView,虽然我不确定)调用你的 OnItemSelectedListener 的 onItemSelected()调用 setAdapter() 后的方法,即使用户尚未明确选择任何内容。

我知道这在很多情况下会有用,但有时我只想要 onItemSelected()在实际特别选择项目时调用。

有没有办法控制这种行为并让 Spinner 不调用 onItemSelected()设置适配器后?

最佳答案

我已经很长时间没有使用这个解决方案了,所以我不完全相信它能按预期工作,但到目前为止我很幸运地使用了这个解决方法:

    spinner.setOnItemSelectedListener( new OnItemSelectedListener() {
        protected Adapter initializedAdapter = null;

        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            // Always ignore the initial selection performed after setAdapter
            if( initializedAdapter !=parent.getAdapter() ) {
                initializedAdapter = parent.getAdapter();
                return;
            }

            ...
        }
    }

有没有更好的办法?

关于android - 设置适配器时如何避免让android微调器调用onitemselectedlistener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637704/

相关文章:

安卓布局问题

java - 为什么我的 ListView 在我的 Fragment 方向改变后变为空?

Android 微调器 onselect AsyncTask

android - 找到所有匹配标签的微调器

Android:需要更改微调器背景颜色

java - 无法在对象上找到参数 [目录 'libs'] 的方法实现()

android - OnDestroy() 之后 Activity 的局部变量仍然有效

java - 如何使用 spinner int 值以编程方式添加 View ?

android - 在工具栏中更改微调器样式

android - 警报管理器从未在 android 中触发