簡體   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