package it.angelic.soulissclient.views; import android.content.Context; import android.support.v7.widget.AppCompatButton; import android.util.AttributeSet; import android.view.View; /** * Un bottone definito per essere utilizzato in una {@link android.widget.ListView}. */ public class ListButton extends AppCompatButton { /** * Costruttore di default, inizializza il bottone in base ad un contesto e ad un insieme di attributi. * @param context Contesto. * @param attrs Attributi della vista. */ public ListButton(Context context, AttributeSet attrs) { super(context, attrs); //Rendo forzatamente il bottone non selezionabile. this.setFocusable(false); } public ListButton(Context ctx) { super(ctx); this.setFocusable(false); } /** * Imposta lo stato di pressione del bottone. * @param pressed Stato di pressione del bottone. */ @Override public void setPressed(boolean pressed) { //Se il contenitore del bottone è premuto, allora non imposto anche il bottone a premuto if (pressed && ((View) getParent()).isPressed()) { return; } //Se il contenitore non è premuto, allora è stato toccato il bottone. Procedo normalmente. super.setPressed(pressed); } }