webentwicklung-frage-antwort-db.com.de

Wie kann ich überprüfen, ob das Kontrollkästchen für Android in seiner onClick-Methode (in XML deklariert) aktiviert ist?

Ich habe ein Kontrollkästchen in Android, das folgendes XML hat:

<CheckBox
   Android:id="@+id/item_check"
   Android:layout_width="wrap_content"
   Android:layout_height="wrap_content"
   Android:onClick="itemClicked" />

Dies ist meine onClick () -Methode in meiner Aktivitätsklasse.

public void itemClicked(View v) {
  //code to check if this checkbox is checked!
}

Mir ist bekannt, dass wir ein Objekt des Kontrollkästchens erstellen und ihm eine ID zuweisen können. Gibt es eine bessere Möglichkeit, die Funktionalität zu erreichen, wenn die onClick-Methode über XML deklariert wird?

42
aBhijit

probier diese : 

public void itemClicked(View v) {
  //code to check if this checkbox is checked!
  CheckBox checkBox = (CheckBox)v;
  if(checkBox.isChecked()){

  }
}
85
Anand

Dies wird den Trick tun:

  public void itemClicked(View v) {
    if (((CheckBox) v).isChecked()) {
        Toast.makeText(MyAndroidAppActivity.this,
           "Checked", Toast.LENGTH_LONG).show();
    }
  }
6
Sami Eltamawy

Sie können diesen Code ausprobieren:

public void itemClicked(View v) {
 //code to check if this checkbox is checked!
 if(((Checkbox)v).isChecked()){
   // code inside if
 }
}
4
Kishita
enter code here

<CheckBox
      Android:id="@+id/checkBox1"
      Android:layout_width="wrap_content"
      Android:layout_height="wrap_content"
      Android:text="Fees Paid Rs100:"
      Android:textColor="#276ca4"
      Android:checked="false"
      Android:onClick="checkbox_clicked" />

Hauptaktivität von hier aus

   public class RegistA extends Activity {
CheckBox fee_checkbox;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_regist);
 fee_checkbox = (CheckBox)findViewById(R.id.checkBox1);// Fee Payment Check box
}

// Kontrollkästchen angeklickt

     public void checkbox_clicked(View v)
     {

         if(fee_checkbox.isChecked())
         {
            // true,do the task 

         }
         else
         {

         }

     }
3
vbijoor
@BindView(R.id.checkbox_id) // if you are using Butterknife
CheckBox yourCheckBox;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_activity); 
    yourCheckBox = (CheckBox)findViewById(R.id.checkbox_id);// If your are not using Butterknife (the traditional way)

    yourCheckBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            yourObject.setYourProperty(yourCheckBox.isChecked()); //yourCheckBox.isChecked() is the method to know if the checkBox is checked
            Log.d(TAG, "onClick: yourCheckBox = " + yourObject.getYourProperty() );
        }
    });
}

Natürlich müssen Sie Ihr XML mit der ID Ihrer Checkbox erstellen:

<CheckBox
    Android:id="@+id/checkbox_id"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="Your label"
    />

Die Methode, die wissen soll, ob das Kontrollkästchen aktiviert ist, lautet: (CheckBox) yourCheckBox.isChecked() Gibt true zurück, wenn das Kontrollkästchen aktiviert ist.

0
Nicoolasens