0
我已經閱讀了關於這個問題的所有答案,在這裏沒有任何幫助。CheckBox setChecked沒有效果
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
。有任何想法嗎?
難道你調用'一個錯誤setSelected(hdmi)'而不是'setChecked()'? –
使用'checkBox_HDMI.setChecked(hdmi);' – king
是的,代碼盲+複製和粘貼錯誤,謝謝你們! – shoota