J'ai une case à cocher dans Android qui a le XML suivant:
<CheckBox
Android:id="@+id/item_check"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:onClick="itemClicked" />
C'est ma méthode onClick () dans ma classe d'activité.
public void itemClicked(View v) {
//code to check if this checkbox is checked!
}
Je suis conscient que nous pouvons créer un objet de la case à cocher et lui attribuer un identifiant. Mais existe-t-il un meilleur moyen d'obtenir cette fonctionnalité lors de la déclaration de la méthode onClick
via XML?
essaye celui-là :
public void itemClicked(View v) {
//code to check if this checkbox is checked!
CheckBox checkBox = (CheckBox)v;
if(checkBox.isChecked()){
}
}
Ça fera l'affaire:
public void itemClicked(View v) {
if (((CheckBox) v).isChecked()) {
Toast.makeText(MyAndroidAppActivity.this,
"Checked", Toast.LENGTH_LONG).show();
}
}
Vous pouvez essayer ce code:
public void itemClicked(View v) {
//code to check if this checkbox is checked!
if(((Checkbox)v).isChecked()){
// code inside if
}
}
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" />
Activité principale d'ici
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
}
// case cochée
public void checkbox_clicked(View v)
{
if(fee_checkbox.isChecked())
{
// true,do the task
}
else
{
}
}
@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() );
}
});
}
Évidemment, vous devez créer votre code XML avec l'identifiant de votre case à cocher:
<CheckBox
Android:id="@+id/checkbox_id"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Your label"
/>
Donc, la méthode pour savoir si la case à cocher est cochée est la suivante: (CheckBox) yourCheckBox.isChecked()
il retourne true
si la case à cocher est cochée.