我在我的应用程序中使用了 CompoundButton
。我在 CompoundButton.OnCheckedChangeListener
的 onCheckedChange()
回调中调用了一个名为 newsLetterUpdate()
的方法。我以编程方式更改此 CompoundButton
的选中状态,但调用了 onCheckedChange()
回调。我希望仅当我在 View
上切换选中状态时才触发 onCheckedChange()
。
请建议我一个解决方案来更改复合按钮的状态,而无需调用 onCheckedChange()
回调。
最佳答案
因此,根据您的要求,我认为只有在用户启动操作时,您才需要执行 onCheckedChange()
回调中的代码。对吧?
那你为什么要使用onCheckedChange()
,你可以使用onClickListener()
来实现你的目标。
目前你可能已经在里面写了你的代码:
compundbutton.setOnCheckedChangeListener(your_current_listener);
将该代码从那里移动到:
compundbutton.setOnClickListener(your_new_listener);
然后 onCheckedChange ()
监听器将不会在以编程方式设置检查状态时被调用。
compundbutton.setChecked(选中);
希望对您有所帮助! :)
关于android - 如何以编程方式打开/关闭组件按钮而不影响 onCheckedChangeListener 中的 onCheckedChanged(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310164/