Autore Topic: setClickable(false) non funzionante, ma solo all'avvio. Debug?  (Letto 831 volte)

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
0
Salve
Ho due Button, di cui uno solo deve essere cliccabile. Ho impostato l'attributo android:clickable="false" nel main.xml, ma il pulsante continua ad essere cliccabile.
Allora ho provato a chiamare il metodo Button.setClickable(false) subito dopo l'inizializzazione delle variabili all'interno di onCreate(), ma ancora niente da fare.
La mia app prevede che possa essere cambiato il pulsante premibile e dopo aver eseguito questo cambio (con una funzione che utilizza proprio setClickable() su entrambi i pulsanti) tutto funziona come dovrebbe.
Non so più cosa provare e non so neanche come potrei debuggare... Qualcuno conosce un motivo per cui tutto questo può succedere o un qualche modo per avere un minimo di debug in più?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:setClickable(false) non funzionante, ma solo all'avvio. Debug?
« Risposta #2 il: 15 Marzo 2011, 17:34:34 CET »
0
Ma setEnabled() non è un metodo deprecato? Su Eclipse dice così e di sostituirlo con state_enable che però non so dove trovare.
Poi il fatto è che in ogni altro momento diverso dal primo caricamento dell'applicazione, l'attributo Clickable impostato tramite setClickable() fa il suo dovere...

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:setClickable(false) non funzionante, ma solo all'avvio. Debug?
« Risposta #3 il: 15 Marzo 2011, 17:45:11 CET »
0
Eclipse lo segnala come deprecato, ma nelle reference effettivamente non c'è scritto niente a riguardo...
Possibile si a deprecato il tag xml, ma non il metodo per impostare l'attributo?
Comunque in questo modo funziona.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:setClickable(false) non funzionante, ma solo all'avvio. Debug?
« Risposta #4 il: 15 Marzo 2011, 17:48:52 CET »
0
La documentazione relativamente a setClickable dice:

Citazione
Defines whether this view reacts to click events.

Ti torna il fatto che se lo metti a false non reagisce al click (ovvero non chiama il relativo listener)?

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:setClickable(false) non funzionante, ma solo all'avvio. Debug?
« Risposta #5 il: 15 Marzo 2011, 17:56:45 CET »
0
Ti torna il fatto che se lo metti a false non reagisce al click (ovvero non chiama il relativo listener)?

Non proprio, almeno non sempre...
setClickable lo chiamo sui miei due pulsanti appena entrato in onCreate() e in precedenza avevo anche provato ad impostarlo direttamente da xml, ma anche se impostato a false il pulsante rimane cliccabile.
Più avanti nell'esecuzione del programma mi capita di dover scambiare il pulsante attivo tra i due (sempre usando setClickable) e in questo caso funziona tutto.

Ora con serEnabled funziona tutto (anzi, anche meglio, visto che il pulsante non cliccabile cambia anche colore), ma volevo la conferma di non utilizzare un metodo deprecato.

Rimane il fatto che mi piacerebbe capire perchè non funzioni con setClickable e come potrei eseguire un minimo di debug..