【发布时间】:2014-03-21 16:21:42
【问题描述】:
您好,我正在创建一个使用复选框的 android 应用程序,我想知道当复选框的状态发生更改时使用 OnCheckedChangeListener 执行某项操作是否更好,或者使用 OnClickListener 是否更好每次选中或取消选中复选框时都会执行的 if 语句?谢谢
【问题讨论】:
标签: java android listener onclicklistener oncheckedchanged
您好,我正在创建一个使用复选框的 android 应用程序,我想知道当复选框的状态发生更改时使用 OnCheckedChangeListener 执行某项操作是否更好,或者使用 OnClickListener 是否更好每次选中或取消选中复选框时都会执行的 if 语句?谢谢
【问题讨论】:
标签: java android listener onclicklistener oncheckedchanged
使用OnCheckedChangeListener,只要检查状态发生变化,您就会收到一个事件,即使使用.setChecked() 在代码中完成也是如此。
根据您正在执行的操作,这可能会导致意外行为(例如,当您在列表视图中有一个复选框时,视图被回收并且复选框状态以编程方式被修改,它看起来与用户有完全相同的方式点击它)。
因此,当您编写应该对单击复选框的用户做出反应的代码时,您应该使用OnClickListener。
【讨论】:
OnCheckedChangeListener 提供布尔变量 isChecked,而在 OnClickListener 中,您将使用 ((CheckBox) v).isChecked() 获取该信息(如果 v 是作为参数传递的 View)。但重点是后者旨在用于用户(手指)交互。