Autore Topic: Button.setEnabled(false)  (Letto 386 volte)

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Button.setEnabled(false)
« il: 27 Marzo 2015, 16:12:35 CET »
0
Salve ragazzi, sto impazzendo con un bottone del cavolo .... :(

Codice: [Seleziona]
                btnHold.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View arg0) {
                                isHold = true;
                                btnHold.setEnabled(false);
                        }
                });

Sul listener dell'OnClick lo disabilito, ma il mio bottone rimane normalissimo, non diventa grigino, anche se poi non risulta più cliccabile.
Sono io che mi ricordo male oppure il bottone oltre che non essere più cliccabile col .setEnabled(false) dovrebbe diventare grigino?



Offline tonno16

  • Utente storico
  • *****
  • Post: 1186
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Button.setEnabled(false)
« Risposta #1 il: 27 Marzo 2015, 16:19:26 CET »
0
Non ricordo di questa cosa

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Button.setEnabled(false)
« Risposta #2 il: 27 Marzo 2015, 16:53:30 CET »
0
Potrebbe essere dovuto al fatto che nell'XML setto un colore di background al bottone:

Codice (XML): [Seleziona]
android:background="@color/grigio_topo"

Offline icex93

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +1
    • Mostra profilo
Re:Button.setEnabled(false)
« Risposta #3 il: 28 Marzo 2015, 16:10:33 CET »
+1
Se setti un colore al background di una View,  questo sarà il colore associato sia al suo stato di defualt (rilasciato e abilitato) che a tutti gli altri suoi stati (premuto, disabilitato ecc.)
Per fare in modo di definire il giusto colore per ogni stato della View dovresti creare un "customBttColor.xml" ed inserirlo nella cartella "drawable" (se non c'è,  la crei).  Al suo interno definisci un oggetto "selector" con cui definisci stato per stato (o per lo meno quelli di tuo interesse) che colore attribuire alla tua View.
Una volta definito,  poi,  ti basta settare come attributo "background" della tua View proprio questo xml invece del colore ed il giochetto è  fatto ;)
Appena sto da pc vedo di scriverti uno snippet se non riesci a farlo (anche se è molto semplice,  ti basta cercare in rete)
« Ultima modifica: 28 Marzo 2015, 16:20:04 CET da icex93 »

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Button.setEnabled(false)
« Risposta #4 il: 30 Marzo 2015, 16:53:39 CEST »
0
Ti ringrazio icex93 ma ho risolto in modo più semplice; con Holo colors mi sono creato un tema ad-hoc e questo funziona già di suo senza dover customizzare il backgrond di un bottone. ;)
Visto che funziona non ho la necessità di definire un customBttColor.xml.