我已经在这里阅读了这个问题的所有答案,但没有任何帮助。
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
中。有什么想法吗?
答案 0 :(得分:0)
由于您使用的是复选框,并希望以编程方式选中复选框
使用此
checkBox_HDMI.setChecked(hdmi);
而不是
checkBox_HDMI.setSelected(hdmi);