CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Pagina 1 di 6 123 ... ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 57
Discussione:

colore background ed effetto su evento click

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Exclamation

    colore background ed effetto su evento click

    Ciao a tutti,
    avrei un'informazione, o meglio un aiuto da chiedervi.
    Ho una ListView nella mia applicazione che viene gestita tramite CustomAdapter. Quello che faccio è colorare una determinata riga con un colore di background differente se rispetta una determinata condizione. Fin qua tutto funziona...il problema è però questo: nel momento in cui setto il colore di sfondo tramite setBackgroundColor a quella riga, se si clicca su di essa, il click funziona, quindi effettivamente l'azione prevista all'evento click è ok, quello che non va è però l'effetto che si aveva al click sulla cella.
    Mi spiego meglio: usando il tema di defaul delle listview, quindi senza dare background, al click su quella cella questa si colora di arancione, se invece si setta il colore di background questo non viene più fatto, quindi effettivamente l'utente non potrebbe essere in grado di capire se il click è andato a buon fine o meno.
    Qualcuno può dirmi i motivi o come risolvere questa cosa? Perchè cercando in giro non sono riuscita a trovare nulla in proposito!
    Vi ringrazio
    Ciao ciao

  2.  
  3. #2
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Perché per il background ci si possono mettere anche altre risorse non solo dei drawable.
    In pratica crei nella cartella drawable un file xml e ci scrivi:
    Nome file pippo.xml

    Poi nell'istruzione setBackgroundResource gli passerai il file pippo, setBackgroundResource(R.drawable.pippo); .
    Come drawable io ho usato dei colori, ovviamente puoi usare delle immagini.
    Il codice che ho postato si dovrebbe capire cosa fa, in caso contrario te lo spiego.
    Ultima modifica di Andrea; 12-08-10 alle 22:24

  4. #3
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao sei stato gentilissimo nella risposta, ma soprattutto molto veloce...
    Ho provato a fare come hai detto, e veramente avevo provato anche in precedenza ma qualcosa sembra non funzionare.
    Ho creato un file busselect.xml in drawable con questo codice:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false"
    android:color="#f8f6cc" />
    <item android:state_pressed="true"
    android:color="#f8aa04" />
    <item android:state_focused="true"
    android:state_pressed="false"
    android:color="#f8f6cc" />
    <item android:color="#f8f6cc" />
    </selector>


    se anzichè mettere android:color metto android:drawable mi da un errore quindi ho provato a mettere color e poi inserire nel mio Custom Adapter in cui voglio modificare il colore della cella

    v.setBackgroundResource(R.drawable.busselect);

    Purtroppo però non appena avvio l'applicazione e prova a caricare il tutto mi da questo errore:


    android.content.res.Resources$NotFoundException: File res/drawable/busselect.xml from drawable resource ID #0x7f020006

    Forse sto sbagliando o dimenticando qualcosa??? Perchè non riesco a venirne a capo!
    Inoltre è possibile nello stesso xml avere possibilità di scelta differenti per il colore da usare oppure c'è la necessità di creare un nuovo xml per ogni colore che voglio usare?Mi spiego meglio: usare lo stesso file xml in questo caso busselect.xml per assegnare colori diversi, ma lo stesso effetto di press della cella, a celle differenti della stessa listview???
    Grazie mille!

  5. #4
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ok..ci sono! Per risolvere il problema del colore drawable ho creato un file di resources con i colori predefiniti e richiamandoli il problema è ora risolto..riesco finalmente a vedere il click. Però una curiosità: se disabilito il click attraverso v.setClickable in modo da non far "lampeggiare" la riga chiaramente mentre prima funzionava, ora, con lo stile creato questo non avviene, e la pressione viene cmq riconosciuta. C'è un modo per non fare questo che non sia troppo complesso?!?!?Altrimenti non è una cosa indispensabile.

    Grazie mille ancora per l'aiuto che mi hai dato...

  6. #5
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da biglalla83 Visualizza il messaggio
    se anzichè mettere android:color metto android:drawable mi da un errore quindi ho provato a mettere color e poi inserire nel mio Custom Adapter in cui voglio modificare il colore della cella
    Ehm... Ho sbagliato io Il colore non andava scritto direttamente nel drawable...

    Per fare in modo che l'elemento non sia clickabile devi modificare l'adattatore facendo l'override del metodo isEnabled(int Position), e poi trovi un modo tu per fargli capire quale elemento deve essere disabilitato e quale no.
    Per esempio potresti creare, nell'adattatore, un hashmap dove la chiave è la posizione dell'elemento e il valore è il boolean per l'abilitazione, crei dei metodi pubblici per poterlo settare o prenderlo e poi dentro al metodo isEnabled ci metti un If etc.

    EDIT: Ho riletto con calma il tuo post iniziale... E ho notato che il problema era molto più semplice.
    Gli elementi della ListView hanno come sfondo un colore completamente trasparente, mentre tu mettevi un colore solido, e siccome il giallo appare sotto il background non lo vedevi più.
    Quindi se vuoi tenere l'arancione come highlight quando setti il colore di background gli aggiungi i valori di trasparenza, se no fai come scritto fino ad adesso.
    Ultima modifica di Deadly; 13-08-10 alle 18:12

  7. #6
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao ho il tuo stesso problema...mi sono creato il file xml



    ed ho l'errore che avevi inizialmente anche tu:
    11-07 10:34:45.632: ERROR/AndroidRuntime(518): android.content.res.Resources$NotFoundException: File res/drawable/pippo.xml from drawable resource ID #0x7f020003

    solo che non ho ben capito come l'hai risolto..cioè non ho ben capito la storia dei resources.
    volevo chiederti gentilmente se potevi postare l'xml dove setti i colori predefiniti e come li richiami.....io sto tendando una volta che viene soddisfatta una condizione all'onclick sull'elemento della listview di cambiarne il colore di sfondo del solo elemento per cui la condizione è verificata ed inoltre vorrei non rendere più l'elemento cliccabile....ti ringrazio davvero...ciao!
    Ultima modifica di sangio85; 07-11-10 alle 11:41

  8. #7
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Nella cartella values ti crei un file xml dove ci metti i due colori che utilizzi, poi nel file xml che usi come drawable cambi android:color=".." in android:drawable e come argomento ci metti il riferimento al colore.

    Nel file dove definisci i colori ci metti:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <color name="primo">#f8f6cc</color>
    <color name="secondo">#f8aa04</color>
    </resources>

    Nel tuo:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="primo" />
    <item android:state_pressed="true" android:drawable="secondo" />
    <item android:state_focused="true" android:state_pressed="false"
    android:drawable="primo" />
    <item android:drawable="primo" />
    </selector>

  9. #8
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ok grazie....
    ho fatto come dici...nella cartella drawable mi sono creato il file xml da te scritto e cioè
    il secondo pezzo di codice xml da te scritto
    solo che mi da errori sui colori e in particolare non vede i nomi primo e secondo...ovviamente dentro alla cartella values mi sono anche creato il file xml colori.xml con il settaggio dei colori...
    Ultima modifica di sangio85; 07-11-10 alle 18:05

  10. #9
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Perchè sono un pirla.

    Ecco il codice giusto...

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@color/primo" />
    <item android:state_pressed="true" android:drawable="@color/secondo" />
    <item android:state_focused="true" android:state_pressed="false"
    android:drawable="@color/primo" />
    <item android:drawable="@color/primo" />
    </selector>

    Salvo che non abbia scritto altre stupidate dovrebbe funzionare.

  11. #10
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Grazie 1000 funziona!
    Posso per piacere chiederti un'ultima cosa?
    Io vorrei che al raggiungimento di un valore uguale a zero...controllo che farei con un semplice if....mi cambiasse il colore dell'elemento della listview che soddisfa tale condizione (quantità prodotto=0)....
    come posso andare a fare questo set sull'elemento della listview...
    gli onclick sulla listview productLv li gestisco nel seguente modo:



    vorrei sapere in sostanza come hai fatto a fare questo:
    Ho una ListView nella mia applicazione che viene gestita tramite CustomAdapter. Quello che faccio è colorare una determinata riga con un colore di background differente se rispetta una determinata condizione.

    Ti ringrazio di nuovo!
    Ciaooo!
    Ultima modifica di sangio85; 07-11-10 alle 19:19

Pagina 1 di 6 123 ... ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy