【问题标题】:OnCheckedChangeListener or OnClickListener with if statement for CheckBox's? What is the difference in functionality?OnCheckedChangeListener 或 OnClickListener 是否带有 CheckBox 的 if 语句?功能上有什么区别?
【发布时间】:2014-03-21 16:21:42
【问题描述】:

您好,我正在创建一个使用复选框的 android 应用程序,我想知道当复选框的状态发生更改时使用 OnCheckedChangeListener 执行某项操作是否更好,或者使用 OnClickListener 是否更好每次选中或取消选中复选框时都会执行的 if 语句?谢谢

【问题讨论】:

    标签: java android listener onclicklistener oncheckedchanged


    【解决方案1】:

    使用OnCheckedChangeListener,只要检查状态发生变化,您就会收到一个事件,即使使用.setChecked() 在代码中完成也是如此。

    根据您正在执行的操作,这可能会导致意外行为(例如,当您在列表视图中有一个复选框时,视图被回收并且复选框状态以编程方式被修改,它看起来与用户有完全相同的方式点击它)。

    因此,当您编写应该对单击复选框的用户做出反应的代码时,您应该使用OnClickListener

    【讨论】:

    • 啊,我明白了!所以 OnCheckedChangeListener 每次状态改变时都会执行相同的代码。哪里有一个带有 if 语句的 OnClickListener 可以在每次按下复选框时检查它的状态?
    • 是的。 OnCheckedChangeListener 提供布尔变量 isChecked,而在 OnClickListener 中,您将使用 ((CheckBox) v).isChecked() 获取该信息(如果 v 是作为参数传递的 View)。但重点是后者旨在用于用户(手指)交互。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多