想知道如何处理以下问题:根据两个spinners的选定项目计算结果。为了处理UI事情,即用户在其中一个spinners中选择一个新项目,我在该活动的onCreate()
方法中安装了一个使用setOnItemSelectedListener
作为微调器的侦听器。如何通过代码设置所选项目时禁用onItemSelectedListener
现在:那工作,当然很好。听众的工作是触发结果的新计算。
的问题:因为我拦截onPause()
onResume()
保存/恢复过去的状态,我有一个方法套这两个微调选定的项目编程就像在这里:
startSpinner.setSelection(pStart);
destSpinner.setSelection(pDest);
这两个调用调用听众也是!我的结果计算方法加上新结果集的通知在这里调用两次!
对此的一个愚蠢的直接方法是让一个布尔变量禁用无论监听者在里面做什么,在设置选择的项目并在之后重新设置之前进行设置。 好的。但是有没有更好的方法?
我不希望侦听器被代码调用,只能通过用户操作调用! :-(
你怎么办呢? 谢谢!
您可以使用setSelection(pStart,false)设置动画参数。但它不是一直工作。 – sunlover3 2017-08-15 13:04:34