CheckBox setChecked无效

时间:2017-02-16 19:33:52

标签: android checkbox

我已经在这里阅读了这个问题的所有答案,但没有任何帮助。

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中。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是复选框,并希望以编程方式选中复选框

使用此

checkBox_HDMI.setChecked(hdmi);

而不是

checkBox_HDMI.setSelected(hdmi);