繁体   English   中英

CheckBox setChecked无效

[英]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 ,将truefalse硬编码为setChecked() ,然后将代码放在onResume 有任何想法吗?

由于您使用的是复选框,并且想以编程方式选中该复选框

用这个

checkBox_HDMI.setChecked(hdmi);

代替

checkBox_HDMI.setSelected(hdmi);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM