[英]CheckBox setChecked has no effect
我已经在这里阅读了该问题的所有答案,但没有任何帮助。
public class ServerConfigFragment extends Fragment {
private CheckBox checkBox_HDMI = null;
private Handler updateScreen;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
updateScreen = new Handler();
checkBox_HDMI = (CheckBox) rootView.findViewById(R.id.checkBox_Server_Conf_HDMI);
checkBox_HDMI.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
m_commsController.sendCmd(VideoStreamSettings.sendHdmiCommand(isChecked));
}
});
final boolean hdmi = getHdmiSettingFromServer();
updateScreen.post(new Runnable() {
@Override
public void run() {
checkBox_HDMI.setSelected(hdmi);
}
});
}
}
因此,在我的应用程序首次启动时,它查询服务器的hdmi状态,我想设置复选框以使其匹配。 从日志中可以看到我得到了正确的值,但是到目前为止,我还没有能够以编程方式打开/关闭复选框。 我尝试过使用和不使用Handler
,将true
和false
硬编码为setChecked()
,然后将代码放在onResume
。 有任何想法吗?
由于您使用的是复选框,并且想以编程方式选中该复选框
用这个
checkBox_HDMI.setChecked(hdmi);
代替
checkBox_HDMI.setSelected(hdmi);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.