2017-03-11 7 views
0

Ich möchte programmgesteuert Kontrollkästchen in eine Ansicht hinzufügen, wenn ich eine Schaltfläche drücke, und wenn das Kontrollkästchen aktiviert ist, möchte ich das bestimmte Kontrollkästchen entfernt werden.Android: Entfernen Sie ein bestimmtes Kontrollkästchen programmatisch

Button btnAdd = (Button) findViewById(R.id.MainActivity_btnAdd); 
    final EditText edtHomework = (EditText) findViewById(R.id.MainActivity_edtHomework); 
    final LinearLayout llHomework = (LinearLayout) findViewById(R.id.MainActivity_llHomework); 

    btnAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      cbHomework = new CheckBox(MainActivity.this); 
      cbHomework.setText("• " + edtHomework.getText().toString()); 
      llHomework.addView(cbHomework); 
      edtHomework.setText(""); 
     } 
    }); 

    cbHomework.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
      if (cbHomework.isChecked()){ 
       // remove the checkbox that is ticked 
      } 
     } 
    }); 

Zum Beispiel habe ich eine Liste der Dinge zu vervollständigen: List of things I must complete

Wenn es (wie Physik) markiert ist, ich will es entfernt werden.

+1

Haben Sie versucht, nur die Ansichten verstecken. checkedCheckbox.setVisibility (GONE) –

+0

@ AdityaDesai Das Problem ist, ich muss finden, welche Prüfung aktiviert ist –

+0

haben Sie versucht, einen OnCheckedChangedListener auf Ihrer Checkbox zu verwenden? –

Antwort

1

sollten Sie setzen OnCheckedChangedListener direkt nach dem Erstellen und Hinzufügen des Kästchens, wie folgt aus:

btnAdd.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     cbHomework = new CheckBox(MainActivity.this); 
     cbHomework.setText(edtHomework.getText().toString()); 
     llHomework.addView(cbHomework); 

     cbHomework.setOnCheckedChangedListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { 
        if(isChecked) 
         llHomework.removeView(compoundButton); 
       } 
      }); 
    } 
}); 
Verwandte Themen