android - 如何以编程方式打开/关闭组件按钮而不影响 onCheckedChangeListener 中的 onCheckedChanged()

标签 android oncheckedchanged

我在我的应用程序中使用了 CompoundButton。我在 CompoundButton.OnCheckedChangeListeneronCheckedChange() 回调中调用了一个名为 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/

相关文章:

android - 如何编辑 list Recycler 项目以及新选择的项目

gridview - GridView 中复选框的 onCheckedChanged 事件

android - 开关 setOnCheckedChangeListener 无法正常工作

c# - 单选按钮检查更改事件触发两次

java - 如何将监听器添加到切换按钮?

android - 如何在我的应用程序中找到使用 findbugs 的依赖项? (findbugs冲突)

android - Phonegap-Android : Using Arabic/Persian fonts

android - 在 Lollipop 及以上版本上仅获得一次 sdcard 窗口的权限

安卓 : Change entire app layout directions programmatically

android - Recyclerview 在嵌套 ScrollView 中无限滚动,触发 onScrolled