Autore Topic: convertire un'informazione nel DB in una caratteristica del bottone  (Letto 366 volte)

Offline gig

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
premetto di essere una principiante, solo pochi giorni fa ho iniziato a smanettare con android, a causa del progetto che devo realizzare per un esame...
il mio problema riguarda la gestione di un multisala, in particolare la visualizzazione dei posti disponibili in sala e la loro prenotazione da parte dell'utente; avevo pensato di usare dei bottoni per simulare i posti: verdi se disponibili, quindi cliccando su un bottone verde questo diventa giallo (selezionato) e, cliccando su un ulteriore pulsante conferma il bottone diventa rosso (prenotato) .... ho trovato codici che mi aiutano nella realizzazione di questo layout, ma il problema è la comunicazione con il DB: infatti l'app cominicherà con un db dove saranno salvate, e modificate, queste informazioni cioè un db che si aggiorna ad ogni prenotazione.
non vi chiedo il codice necessario a fare tutto questo, mi rendo conto sia impossibile!! ma solo qualche dritta cioè come trasformo l'informazione del db "posto 16 libero" in: pulsante verde nel layout????
spero di essere stata chiara, e vi ringrazio anticipatamente per l'aiuto che deciderete di darmi...

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #1 il: 27 Giugno 2014, 12:03:00 CEST »
0
Visto che è per un esame, meglio farla più semplice possibile e per passi.

Se hai già fatto un layout, immagino avrai una certa quantità di bottoni. E' fondamentale che ciascuno abbia il suo id, così da potervi accedere dal codice.

Nella tua activity crea un array di int che conterrà lo stato di tutti i posti (es: 0 libero, 1 selezionato, 2 prenotato). Per cominciare puoi mettere direttamente nel codice dei valori di prova, poi farai in modo da riceverli da db quando avrai sistemato l'interfaccia grafica.

Nell'activity fai una funzione AggiornaStato(), il cui compito è andare a scorrere l'array dei posti e aggiornare l'aspetto del rispettivo bottone. Per aggiornare l'aspetto del bottone ti serve l'id corrispondente al posto che stai aggiornando (lo ricavi dall'indice del ciclo con cui scorri l'array).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline gig

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #2 il: 27 Giugno 2014, 16:34:46 CEST »
0
ti ringrazio per l'aiuto, ma non ho capito bene: ipotizziamo di avere 10 bottoni (una fila da 10 posti), ciascuno con il suo id: come faccio ad assegnare uno stato ad un bottone? avevo pensato di cambiare lo stato gestendo l'evento di click sul bottone stesso, ma mi manca proprio lo step iniziale: come dare uno stato al bottone (0,1,o 2)..esiste un metodo che può farlo?
mi scuso ancora, sono domande sciocche, ma sono proprio all'inizio...

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #3 il: 27 Giugno 2014, 16:59:27 CEST »
0
ti ringrazio per l'aiuto, ma non ho capito bene: ipotizziamo di avere 10 bottoni (una fila da 10 posti), ciascuno con il suo id: come faccio ad assegnare uno stato ad un bottone? avevo pensato di cambiare lo stato gestendo l'evento di click sul bottone stesso, ma mi manca proprio lo step iniziale: come dare uno stato al bottone (0,1,o 2)..esiste un metodo che può farlo?

Il metodo più semplice è farsi un array di numeri interi dentro l'activity. Un array di 10 numeri nel tuo caso. Quell'array sarà la tua base dati, la memoria in cui sarà conservato lo stato dei posti. Poi provvederai a cambiare il colore dei bottoni a seconda dello stato del posto corrispondente.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

iClaude

  • Visitatore
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #4 il: 27 Giugno 2014, 17:13:27 CEST »
0
ti ringrazio per l'aiuto, ma non ho capito bene: ipotizziamo di avere 10 bottoni (una fila da 10 posti), ciascuno con il suo id: come faccio ad assegnare uno stato ad un bottone? avevo pensato di cambiare lo stato gestendo l'evento di click sul bottone stesso, ma mi manca proprio lo step iniziale: come dare uno stato al bottone (0,1,o 2)..esiste un metodo che può farlo?
mi scuso ancora, sono domande sciocche, ma sono proprio all'inizio...

Nel metodo onCreate della tua app fai partire un thread che interroga il database e ricava i posti prenotati (nel database potresti utilizzare una sola colonna dove memorizzare l'id dei bottoni corrispondenti ai posti prenotati: è la prima cosa che mi viene in mente...); quindi utilizzi il Cursor per cambiare lo stato dei bottoni corrispondenti ai posti prenotati.

Offline gig

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #5 il: 29 Giugno 2014, 17:31:12 CEST »
0
ma come si assegna l'id ad un bottone?
io per ora ho incontrato questo comando:
android:id="@+id/button1
ma in questo modo non decido io quale valore assegnare!
se volessi assegnare id  1 al bottone 1 come dovrei fare?

iClaude

  • Visitatore
Re:convertire un'informazione nel DB in una caratteristica del bottone
« Risposta #6 il: 29 Giugno 2014, 17:50:48 CEST »
0
ma come si assegna l'id ad un bottone?
io per ora ho incontrato questo comando:
android:id="@+id/button1
ma in questo modo non decido io quale valore assegnare!
se volessi assegnare id  1 al bottone 1 come dovrei fare?

A te non interessa assegnare l'id al bottone, bensì ricavare l'id di ogni bottone premuto da memorizzare nel database, e questo è abbastanza semplice: quando premi il bottone viene chiamato il metodo

public void onClick(View v) {
        // Do something in response to button click
    }

e all'interno puoi ricavare l'id con v.getId()