Autore Topic: Query SQLite...date  (Letto 507 volte)

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Query SQLite...date
« il: 20 Settembre 2013, 19:07:04 CEST »
0
attualmente tramite query visualizzo i dati in una listview, questi dati sono di tipo TEXT e in uno memorizzo la data (YYYY-MM-DD)

 ora vorrei fare in modo che sia l'utente a scegliere il range di date per le quali visualizzare i dati.

fin ora ho creato 2 textview nelle quali ci sono le date DA-A

Ora dovrei recuperare quei dati e farli leggere nella Select (BETWEEN "DA" AND "A")

come recupero i dati delle TextView??

Offline matttt

Re:Query SQLite...date
« Risposta #1 il: 21 Settembre 2013, 10:55:20 CEST »
0
TextView, quindi etichette; non EditText... non cambia di molto cmq.
Mettiamo per ipotesi che le date stringa in input siano del tipo: 15/06/2012
Codice (Java): [Seleziona]
SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy" );
Date date = sdf.parse( textView.getText(), 0 );

E poi sfrutti l'oggetto Date a tuo piacimento per formattare la stringa da usare nella query usando sempre SimpleDateFormat (funzione format):
Codice (Java): [Seleziona]
SimpleDateFormat sdf2 = new SimpleDateFormat( "yyyy-MM-dd" );
String date_query = sdf2.format( date );

Documentazione:
SimpleDateFormat | Android Developers

Note aggiuntive:
- meglio racchiudere parse() in un try & catch per gestire eventuali problemi di parsing
Le mie apps su Google Play Store:

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Query SQLite...date
« Risposta #2 il: 23 Settembre 2013, 22:01:47 CEST »
0
Ho risolto con la query...
ho visto che SQLite supporta solo il formato YYYY-MM-DD , tramite DatePick scelgo la data e nella TextView viene visualizzata nel formato di SQLite.

Io però vorrei che l'utente veda questo formato (es. 10-Mag-2013).
Questo è il codice del mio DatePick
Codice (Java): [Seleziona]
public void pickDate1(View v) {
                Calendar cal = Calendar.getInstance();
                OnDateSetListener callback = new OnDateSetListener() {
                        boolean done = false;

                        @Override
                        public void onDateSet(DatePicker view, int year, int monthOfYear,
                                        int dayOfMonth) {

                                /*
                                 * C'e un bug che "chiama" due volte questa callback. In questo
                                 * modo si evita il problema
                                 */

                                if (!done) {
                                        CharSequence formattedDate = DateFormat.format(
                                                        "yyyy-MM-dd", new GregorianCalendar(year,
                                                                        monthOfYear, dayOfMonth));
                                        dataA.setText(formattedDate);
                                        done = true;

                                }
                        }
                };
                DatePickerDialog dialog = new DatePickerDialog(this, callback,
                                cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
                                cal.get(Calendar.DAY_OF_MONTH));
                dialog.show();
        }