我在其他控制器中制作了一个带有几个Toggle Buttons的应用程序。在某些情况下,某些Toggle按钮会被设置检查并取消选中,而不是由用户进行编程,而是以编程方式进行。
Android虚拟机中的测试显示这些控件的正常行为,当我以编程方式检查并取消选中切换按钮时。
但是当我在一台真正的Android机器上运行App时,我的惊喜就出现了: 当以编程方式取消选中任何切换按钮时(无论我使用setChecked(false)还是toggle()函数),切换按钮确实进入OFF状态,但是使用黄色灯/破折号而不是空灰色破折号是正常的推断...(当然,当解除按钮时,问题不存在)
无论我是否使用:
toggleb.setChecked(false);
...或
toggleb.toggle();
近似图片:
我怀疑它与真实设备的Android版本相比,它比Android虚拟机更先进......
因此,我想知道在将其设置为OFF状态时,如何以编程方式关闭任何短划线按钮。
我在网上搜索这种情况,但令人难以置信的是,我没有提到它......
非常感谢你提前...
我必须添加更新:
问题出现在特定和复杂的条件下,并且只出现在某些Android设备中,就好像它是一种不必要的副作用。这就是为什么这个问题如此奇怪,并没有出现在eclipse的虚拟机(API 10:Android 2.3.3)中并出现在我的LG G3中。经过几次测试后我必须澄清它,因为我不知道它。
我发现问题的应用程序有一个庞大而复杂的代码,其中ToggleButtons不是通过常用的OnClick方法直接激活,而是通过一个OnTouch方法,其Listener链接到一个ImageView(与View相同)覆盖整个Android设备屏幕区域的元素。
因此,此虚拟元素涵盖了应用程序的所有按钮和控件。通过OnTouch方法注册触摸协调器并检查这些坐标是否与某些ToggleButtons的区域匹配来激活按钮。
如果坐标与给定的ToggleButton的区域匹配且未检查(关闭),则检查(打开)该ToggleButton。
相反,如果坐标与给定的ToggleButton的区域匹配并且被检查(打开),则取消选中该ToggleButton(关闭)。
在某些条件下,取消选中一个ToggleButton,将取消选中其他条件。这就是出现问题的地方:当取消选中其他问题时,黄色短划线只出现在其他问题中。
如果我将其他一些ToggleButton放在虚拟屏幕(或透明的ImageView元素)上,令人难以置信的是,这些问题就会消失,但onTouch功能对于那些直接触摸不起作用,所以这不可能是我的解决方案。
我必须报告所有这些。 对不起,我仍然无法放置代码,因为它非常大而且复杂。 提前谢谢。