我已经为我的checkbox实现了setOnCheckedChangeListener

有没有办法我可以打电话给你?

checkbox.setChecked(false);

不触发onCheckedChanged

推荐答案

不,你不能这么做.onCheckedChanged方法直接从setChecked调用.你可以做以下几点:

mCheck.setOnCheckedChangeListener (null);
mCheck.setChecked (false);
mCheck.setOnCheckedChangeListener (mListener);

参见source of CheckBoxsetChecked的实施:

public void  setChecked(boolean checked) {
    if (mChecked != checked) {
        mChecked = checked;
        refreshDrawableState();

        // Avoid infinite recursions if setChecked() is called from a listener
        if (mBroadcasting) {
            return;
        }

        mBroadcasting = true;
        if (mOnCheckedChangeListener != null) {
            mOnCheckedChangeListener.onCheckedChanged(this, mChecked);
        }

        if (mOnCheckedChangeWidgetListener != null) {
            mOnCheckedChangeWidgetListener.onCheckedChanged(this, mChecked);
        }

        mBroadcasting = false;            
    }
}

Android相关问答推荐

当我的Log.i()不在主线程中时,如何在我的logcat中显示它?

如何在Jetpack composeH中创建具有弯曲末端的六边形形状

无法在Android Gradle中同步Chaquopy版本

Jetpack创作动画断断续续变化的观点

在Android Studio中,如何在BuildSrc Dependenices Kotlin文件中指定时标记与旧版本的依赖关系

如何将我的Android应用程序(Kotlin)中的图像分享给其他应用程序?

Android写/读二进制文件到共享存储

空数据来自改装

jetpackcompose-如何对解析后的复杂对象进行状态提升?

更改活动(上下文)对接收到的uri的访问权限的影响?

使用 JNI 从 Android 应用程序中使用 Kotlin/Native 预构建共享库

为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

如何在 android compose 中将具有渐变边缘的透明圆圈绘制到阴影覆盖层中?

安卓模拟器打不开

了解 Compose 声明性逻辑

Jetpack Compose 惰性列在单个项目更新时重新组合所有项目

Jetpack Compose UI - 在 AlertDialog 中单击时按钮宽度会发生变化

Composable 不会在单击按钮时重新组合

如何对齐文本和图标可组合,以便即使在文本溢出后它们也能保持在一起?

构成material 3 中的分隔符