android - 复选框默认值 & OnCheckedChangeListener

标签 android checkbox oncheckedchanged

这不是什么大问题,但我正在努力寻找一种正确的方法。

我有以下情况:

public class SettingsDialogFragment extends DialogFragment implements OnCheckedChangeListener {

...

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.settings, container);

    ...

    CheckBox lBox1  = (CheckBox)view.findViewById(R.id.checkBox1);

    lBox1.setOnCheckedChangeListener(this);
    lBox1.setChecked(true);

    return view;
}

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    ....

}

我遇到的“问题”是通过调用 setChecked(true) onCheckChanged 已经触发。我想当我膨胀布局时 - CheckBox 被初始化为 false 设置,我将其更改为 true 确实是一个 CheckedChanged 事件。

我当然可以在设置初始值后更改顺序并分配监听器,但是有没有一种方法可以膨胀布局,同时以某种方式为各个组件传递初始值?它们是动态的,所以我无法将值固定为 settings.xml 中的特定值

干杯

最佳答案

上面的建议很好,但是这个问题在一个checkable的ListView中依然存在。我是这样解决的:disable the listener,set check state,然后再set listener。这是一个辅助函数:

private void checkCheckBox(CheckBox checkBox, boolean checked) {
    checkBox.setOnCheckedChangeListener(null);
    checkBox.setChecked(checked);
    checkBox.setOnCheckedChangeListener(this);
}

关于android - 复选框默认值 & OnCheckedChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259193/

相关文章:

java - Activity 重新创建后操作栏标题消失

javascript - 提醒复选框的状态

如果选中复选框,Javascript 会减去输入字段的值

android - 如何在适配器 View 、Android、ArrayAdapter、onCheckedChanged、OnCheckedChangeListener 中为复选框添加监听器

android - 我如何获得可用时区(android :settings)

android - 如何在 android 选项卡主机中将图像添加为选项卡指示器?

android - 具有固定宽度和响应高度的 GridView (Android)

asp.net-mvc - MVC 表单中额外隐藏的复选框破坏了自定义 CSS 复选框

android - 带有切换按钮的 radio 组无法正常工作

c# - 将事件处理程序添加到动态创建的复选框(aspx、c#)