0
我已经阅读了关于这个问题的所有答案,在这里没有任何帮助。CheckBox setChecked没有效果
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
。有任何想法吗?
难道你调用'一个错误setSelected(hdmi)'而不是'setChecked()'? –
使用'checkBox_HDMI.setChecked(hdmi);' – king
是的,代码盲+复制和粘贴错误,谢谢你们! – shoota