Je dois faire un bouton à bascule en utilisant deux images au lieu de l'état ON/OFF.
À l'état désactivé, je définis une image d'arrière-plan.Mais le texte désactivé ne peut pas être supprimé pendant que j'utilise l'image d'arrière-plan.
Et je ne peux pas définir une autre image sur l'état ON en cliquant sur le bouton bascule :( Je suis nouveau dans Android. J'espère que vous m'aidez à sortir de ce problème
Faire ceci:
<ToggleButton
Android:id="@+id/toggle"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/check" <!--check.xml-->
Android:layout_margin="10dp"
Android:textOn=""
Android:textOff=""
Android:focusable="false"
Android:focusableInTouchMode="false"
Android:layout_centerVertical="true"/>
créer check.xml dans un dossier pouvant être dessiné
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!-- When selected, use grey -->
<item Android:drawable="@drawable/selected_image"
Android:state_checked="true" />
<!-- When not selected, use white-->
<item Android:drawable="@drawable/unselected_image"
Android:state_checked="false"/>
</selector>
La solution d'AkashG ne fonctionne pas pour moi. Lorsque j’ai configuré check.xml en arrière-plan, il s’est tout simplement arrêté verticalement. Pour résoudre ce problème, vous devez configurer check.xml sur la propriété "Android: button":
<ToggleButton
Android:id="@+id/toggle"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:button="@drawable/check" //check.xml
Android:background="@null"/>
check.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!-- When selected, use grey -->
<item Android:drawable="@drawable/selected_image"
Android:state_checked="true" />
<!-- When not selected, use white-->
<item Android:drawable="@drawable/unselected_image"
Android:state_checked="false"/>
</selector>
Vous pouvez essayer quelque chose comme ça. Ici, en cliquant sur le bouton de l'image, je bascule l'imageview.
holder.imgitem.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(!onclick){
mSparseBooleanArray.put((Integer) view.getTag(), true);
holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_delete_overlay_com);
onclick=true;}
else if(onclick)
{
mSparseBooleanArray.put((Integer) view.getTag(), false);
holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_selection_com);
onclick=false;
}
}
});