当选择项目时,我在调整微调器的用户交互时遇到问题。 我知道下面的听众工作完美
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
答案 0 :(得分:2)
tempListener = spinner.getOnItemSelectedListener();
spinner.setOnItemSelectedListener(null);
//change the spinner value...
spinner.setOnItemSelectedListener(tempListener)
更优雅的是,您可以创建Spinner类的子类,并创建'disableOnItemSelectedListener()'和'enableOnItemSelectedListener()'方法,这些方法与上面的代码相同。
答案 1 :(得分:0)
使用我在以下链接中描述的简单技术可以避免对onItemSelected的不期望的调用。这样,你可以随时自己设置setSelection而不必担心。检查此问题的接受答案: