[英]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
,將true
和false
硬編碼為setChecked()
,然后將代碼放在onResume
。 有任何想法嗎?
由於您使用的是復選框,並且想以編程方式選中該復選框
用這個
checkBox_HDMI.setChecked(hdmi);
代替
checkBox_HDMI.setSelected(hdmi);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.