所选项目的Android Spinner用户交互

时间:2012-06-06 14:17:31

标签: java android spinner

当选择项目时,我在调整微调器的用户交互时遇到问题。 我知道下面的听众工作完美

spinner.setOnItemSelectedListener(this);

@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
    // your code here
}

@Override
public void onNothingSelected(AdapterView<?> parentView) {
    // your code here
}

但是在我的应用程序场景中,我将通过程序更改微调器值,同时它也会触发onitemselected事件。但是我只需要在微调器上发生用户交互时触发此事件

注意:我不是在讨论初始微调器值选择项目。

请让我知道如何实现这个目标

提前致谢, Naveenkumar.R

2 个答案:

答案 0 :(得分:2)

tempListener = spinner.getOnItemSelectedListener();
spinner.setOnItemSelectedListener(null);
//change the spinner value...
spinner.setOnItemSelectedListener(tempListener)

更优雅的是,您可以创建Spinner类的子类,并创建'disableOnItemSelectedListener()'和'enableOnItemSelectedListener()'方法,这些方法与上面的代码相同。

答案 1 :(得分:0)

使用我在以下链接中描述的简单技术可以避免对onItemSelected的不期望的调用。这样,你可以随时自己设置setSelection而不必担心。检查此问题的接受答案:

Undesired onItemSelected calls