Lie*_*uwe 4 checkbox android 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) {
....
}
Run Code Online (Sandbox Code Playgroud)
我setChecked(true)遇到的"问题"是,通过调用onCheckChanged将会触发.我想当我给布局充气时 - CheckBox用错误的设置进行初始化,然后我将其更改为true确实是一个CheckedChanged事件.
我当然可以在设置初始值后改变顺序并分配监听器,但有没有办法给布局充气,同时以某种方式传递各种组件的初始值?它们是动态的,因此我无法将值修复为settings.xml中的特定值
干杯
上面的建议很好,但是这个问题仍然存在于可检查的ListView中.我用这种方式解决了它:禁用监听器,设置检查状态,然后再次设置监听器.这是一个辅助函数:
private void checkCheckBox(CheckBox checkBox, boolean checked) {
checkBox.setOnCheckedChangeListener(null);
checkBox.setChecked(checked);
checkBox.setOnCheckedChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5124 次 |
| 最近记录: |