Autore Topic: Gestire input nulli  (Letto 443 volte)

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Gestire input nulli
« il: 19 Maggio 2011, 16:31:58 CEST »
0
Ciao a tutti!
 Ho un Activity che raccoglie dati relativi a un evento:
Il mome è obbligatorio, mentre data, posizione e foto sono facoltative.. Ho un po' di dubbi su come gestire la cosa:
Il mio metodo per inserire nel DB un nuovo evento è questo:
Codice (Java): [Seleziona]
//METODO che inserisce un evento
        public void insertEvent(String name, int lat, int lon) {
                ContentValues cv = new ContentValues();
                cv.put(eveName, name);
                cv.put(eveLatitude, lat);
                cv.put(eveLongitude, lon);
                mDb.insert(eveTable, null, cv);
        }

Ma se io non ho impostato per esempio le coordinate?? che faccio? queste le due possibilità che mi sono venute in mente:
 1. uso il polimorfismo creando più metodi con parametri diversi per ogni possibile combinazione di presenza o assenza di un parametro  :-\
2. faccio lo store del valore di default (per esempio lat=0 e lon=0) e quando farò una query saprò che non sono validi i risultati 0,0 e non li terrò in considerazione. ;-)

Quale l'approccio più corretto? Ve ne vengono in mente altri?

Ciao, grazie    :D

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestire input nulli
« Risposta #1 il: 19 Maggio 2011, 16:37:34 CEST »
0
Perché non lavori ad oggetti, astraendo un po' le cose?
mi spiego meglio:

Crei il tuo oggetto event, che ha 3 properties: name, latitude, longitude.
Di base ha dei valori di default.

Quando fai delle modifiche, setti solo i valori inseriti.

Fa in modo che la tua insertEvent prenda questo oggetto in input, e quindi non hai bisogno di polimorfismo o altro.

spero di essere stato chiaro.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Re:Gestire input nulli
« Risposta #2 il: 19 Maggio 2011, 16:43:38 CEST »
0
Perché non lavori ad oggetti, astraendo un po' le cose?
mi spiego meglio:

Crei il tuo oggetto event, che ha 3 properties: name, latitude, longitude.
Di base ha dei valori di default.

Quando fai delle modifiche, setti solo i valori inseriti.

Fa in modo che la tua insertEvent prenda questo oggetto in input, e quindi non hai bisogno di polimorfismo o altro.

spero di essere stato chiaro.


Si chiarissimo!
Il problema è un altro. Una volta che ho creato l'oggetto event con all'interno le tre variabili, a meno di non fare strano stratagemmi per fare lo store di un oggetto nel database, sarei cortretto a riprendere in mano ciascuna variabile e farci lo store separatamente. Sei daccordo?

Comunque anche con la tua soluzione il problema rimane. Dei valori di default devo comunque metterli. Non esiste altra soluzione (pensavo a un null per tutti i parametri non definiti)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestire input nulli
« Risposta #3 il: 19 Maggio 2011, 16:46:36 CEST »
0
beh, fai in modo che quando hai a che fare con l'evento, lo carichi dal db e metti i valori direttamente nel tuo oggetto, in modo che non li gestisci separatamente.
Ti consigliavo dei valori di default, ma puoi benissimo mettere null se per la tua applicazione hanno un senso.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/