2017-02-16 3 views
0

Ich habe alle Antworten auf diese Frage hier gelesen und nichts hat noch geholfen.CheckBox setChecked hat keine Wirkung

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); 
      } 
      }); 
    } 
} 

So auf meine App Ersteinführung querys es den hdmi Status des Servers und ich möchte, dass meine Checkbox einstellen, dass übereinstimmen. Ich kann aus dem Log sehen, dass ich den richtigen Wert bekomme, aber bisher war es mir nicht möglich, meine Checkbox per Programm zu aktivieren/deaktivieren. Ich habe mit und ohne Handler versucht, true und false in setChecked() hartcodieren und den Code in onResume setzen. Irgendwelche Ideen?

+1

Ist es ein Fehler, dass Sie anrufen ' setSelected (hdmi) 'anstelle von' setChecked() '? –

+0

Verwenden Sie 'checkBox_HDMI.setChecked (hdmi);' – king

+0

Ja, code-blind + Kopieren und Einfügen Fehler, danke Jungs! – shoota

Antwort

0

Da Sie ein Kontrollkästchen verwenden und wollen programmatisch das Kontrollkästchen

Verwendung überprüfen diese

checkBox_HDMI.setChecked(hdmi); 

Statt

checkBox_HDMI.setSelected(hdmi); 
Verwandte Themen