Die Anleitung zu Android CheckBox
View more Tutorials:
In Android ist CheckBox eine Button mit zwei Status, checked und unchecked. Es ist eine grundlegende Komponente und wird häufig in Android-Anwendungen verwendet.

Grundsätzlich können Sie mehrere CheckBox in der Anwendung verwenden, damit Benutzer eine oder mehrere Optionen in einer Reihe von Werten auswählen können.

Standardmäßig haben die CheckBox den Status unchecked, sodass Sie den Status über das Attribut android:checked ändern können.
<CheckBox android:id="@+id/someId" android:checked="true" ... />
Einige wichtige Attribute von CheckBox:
Attribute | Die Beschreibung |
---|---|
android:checked | Geben Sie den aktuellen Status für das CheckBox. |
android:gravity | Richten Sie den Text der CheckBox aus. Die möglichen Werte sind left, right, center, top, ... |
android:text | Legen Sie text für CheckBox fest. |
android:textColor | Legen Sie die Schriftsfarbe für Text fest. |
android:textSize | Legen Sie die Schriftsgröße für Text fest. |
android:textStyle | Legen Sie das Stil für Text fest (bold, italic, bolditalic). |
android:background | Legen Sie die Hintergrundsfarbe für CheckBox fest. |
android:padding | Legen Sie Padding für CheckBox fest. |
android:onClick | Der Name vom Method wird aufgeruft wenn der Benutzer auf CheckBox klicken. |
toggle()
Die 4 Klassen ToggleButton, CheckBox, RadioButton, Switch sind die Sub-Klassen von CompoundButton, deshalb werden sie das Method toggle() geerbt. Das Method ist oft verwendet, das Modus vom Checked (ON) nach Unchecked (OFF) umzuwechseln und umgekehrt.
CompoundButton button = (CheckBox) findViewById(R.id.checkBox); button.toggle();
Es gibt einige Ereignisse im Zusammenhang mit einer CheckBox, aber hier sind zwei Ereignisse, die am häufigsten verwendet werden:
- checkBox.setOnClickListener(View.OnClickListener)
- checkBox.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener)
On Click Event:
Das Ereignis tritt auf, wenn der Benutzer auf das CheckBox klickt, ähnlich wie der Benutzer auf eine Button klickt.
CheckBox chk = (CheckBox) findViewById(R.id.chk1); chk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked = ((CheckBox) v).isChecked(); // Check which checkbox was clicked if (checked){ // Your code } else{ // Your code } } });
On Checked Change Event:
Das Ereignis tritt auf, wenn die CheckBox ihren Status aufgrund der Aktion des Benutzers oder der Auswirkung des Aufrufs der Methode checkBox.setChecked(newState) ändert.
CheckBox chk = (CheckBox) findViewById(R.id.chk1); chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked) { // Your code } else { // Your code } } });
Jetzt schauen Sie das Beispiel vor:

Die Interface der Anwendungsbeispiel wird wie das aussehen:

Hinweis: Wenn Sie an den Schritten zum Entwerfen der Interface dieser Anwendung interessiert sind, lesen Sie bitte den Anhang am Ende des Artikels.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="35dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:text="What programming languages do you like?" android:textSize="18sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <CheckBox android:id="@+id/checkBox_checkAll" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="39dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:text="(Check All)" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> <CheckBox android:id="@+id/checkBox_ccpp" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:text="C/C++" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox_checkAll" /> <CheckBox android:id="@+id/checkBox_csharp" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:text="CSharp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox_ccpp" /> <CheckBox android:id="@+id/checkBox_java" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:text="Java" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox_csharp" /> <Button android:id="@+id/button_showResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="Show Result" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox_java" /> </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.checkboxexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private CheckBox checkBoxCheckAll; private CheckBox checkBoxCcpp; private CheckBox checkBoxCsharp; private CheckBox checkBoxJava; private Button buttonShowResult; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.checkBoxCheckAll = (CheckBox) this.findViewById(R.id.checkBox_checkAll); this.checkBoxCcpp = (CheckBox) this.findViewById(R.id.checkBox_ccpp); this.checkBoxCsharp = (CheckBox) this.findViewById(R.id.checkBox_csharp); this.checkBoxJava = (CheckBox) this.findViewById(R.id.checkBox_java); this.buttonShowResult = (Button) this.findViewById(R.id.button_showResult); this.buttonShowResult.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showResult(); } }); this.checkBoxCheckAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { checkAllCheckedChange(isChecked); } }); } private void showResult() { String message = null; if(this.checkBoxCcpp.isChecked()) { message = this.checkBoxCcpp.getText().toString(); } if(this.checkBoxCsharp.isChecked()) { if(message== null) { message = this.checkBoxCsharp.getText().toString(); } else { message += ", " + this.checkBoxCsharp.getText().toString(); } } if(this.checkBoxJava.isChecked()) { if(message== null) { message = this.checkBoxJava.getText().toString(); } else { message += ", " + this.checkBoxJava.getText().toString(); } } message = message == null? "You select nothing": "You select: " + message; Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } // When "Check All" change state. private void checkAllCheckedChange(boolean isChecked) { this.checkBoxCsharp.setChecked(isChecked); this.checkBoxCcpp.setChecked(isChecked); this.checkBoxJava.setChecked(isChecked); } }
Hier sind einige Schritte zum Entwerfen der Anwendungsinterface (des obigen Beispiels).


Legen Sie ID, Text für die Komponenten in die Interface fest:
- textView: textSize="18sp"
