Autore Topic: widget e dati  (Letto 715 volte)

Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
widget e dati
« il: 11 Giugno 2012, 12:55:39 CEST »
0
ciao.
Ho un custom widget CWidget che è un oggetto che eredita da linearLayout e ha un pulsante con un immagine.
Questi CWidget vengono caricati all inizializzazione estraendo dati dal db da una tabella prodotti(un CWidget per record), che ha le colonne:

id
immaginePath
testobutton
prezzokg
prezzotot

e vengono immagazzinati in una lista con generic .
poi vengono immessi tutti in un gridLayout in un activity tramite un adapter e presentati all utente.
L'utente puo lavorarci e cambiare il prezzotot ad es.
o puo selezionarli / deselezionarli cliccando sul button del CWidget .

Ora:
io vorrei creare due pulsanti nell'activity, uno che visualizza tutti i widget selezionati e l'altro che visualizza tutti i widget non selezionati.
chiaramente all interno del CWidget ci sarà una variabile privata m_selected bool 1 o 0 selezionato/ non selezionato e due metodi publici: bool IsSelected() che restituisce la var m_selected che viene cambiata all'interno del CWidget dall eventhandler sul click del pulsante.

Ora io ho pensato:
si puo fare un qualcosa come per il db ma incentrato su di una lista e richiamare degli url per es:
url:"product/lista" restituisce una lista con tutti i CWidget creati all' inizializzazione
url:"product/selezionati" restituisce una lista con tutti i widget selezionati(ovvero i widget dove ho premuto il pulsante)
url:"product/nonselezionato" lista con tutti i non selezionati
ecc....

dove posso inserire questa lista con i widgets(in che tipo di classe) si puo fare nello stesso modo che si fa col db?
e come faccio ad interrogare la lista e avere di ritorno i risultati(un altra lista ma filtrata)

poi la lista la passo all'adapter che popola la gridview e il gioco è fatto.
esistono degli esempi o due parole su come è meglio fare?
grazie,

Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
Re:widget e dati
« Risposta #1 il: 11 Giugno 2012, 21:21:10 CEST »
0
mi sono un po documentato e le soluzioni che mi appaiono sono 2 :

1)usare un content provider come da esempi trovati a milioni su google ma basato su di una lista anzichè su un db come sqllite
2)ereditare il mio singleton da Appllcation e immettere il mio singleton nel manifest.xml

il content provider correggetemi se sbaglio è utile quando devo condividere dei dati tra le applicazioni ,anche se mi sembra una buona implementazione, ordinata ,non so se esistono altri motivi  per utilizzarlo.
Soprattutto forse se uso dei thread l'uso del singleton potrebbe avere i suoi lati negativi o no?

ho trovato questo confronto in un a discussione
Singleton:
    Advantage: Easy to implement
    Advantage: because I used a common instance, I could implement caching easily and hence make the application not have to do to the      database as often
    Disadvantage:can't share your data with external Activities

content provider
    Advantage: You can share your data with external Activities
    Advantage: You can integrate with the Search API
    Disadvantage: Complicated, need to represent your data in a different way
    Disadvantage: Yet another Android API to spend time learning

cosa intende per Search API?

Per semplicità dato che cio' che mi serve è una lista forse la soluzione migliore sono i singleton.

Domanda:se in ogni custom widget che ho creato incapsulo un oggetto di una classe CData (caricati scorrendo la lista e facendo si che la lista sia una lista con generic di oggetti CData,) che contiene varie proprietà e questa classe viene modificata durante l'uso dell' interfaccia che si basa sulla manipolazione di questi custom widget dove l'utente interagendo cambia queste proprietà, nella lista l'oggetto puntato segue le modifiche?
in c++ basterebbe usare una lista di puntatori  a oggetti , in java?
esiste questa possibilità usando un content provider(il reference sugli oggetti CData usati dai widget)