Visualizzazione stampabile
-
Noooo... per carità, edita i tuoi post circondando il codice che hai postato con i tag CODE e /CODE (tra parantesi quadre), aumenterai drasticamente la leggibilità degli stessi :)
Ad ogni modo, provo ad importare in eclipse questo progetto di prova che ho preparato:
Esegue una copia del db in assets se manca sul device, lo apre e visualizza il contenuto di una tabella in un textview dell'activity principale.
Spero possa fare chiarezza sull'utilizzo di una classe SQLiteAdpater (inclusa nel projct)
-
Ops
Sorry, e' la prima volta che posto del codice su di un forum. Grazie invece per il project, lo provo subito domani mattina. Sei stato davvero gentilissimo. Complimenti per il bel sito, che ho avuto occasione di scoprire meglio in questi giorni.
-
Quote:
Originariamente inviato da
Tuzzo77
Sorry, e' la prima volta che posto del codice su di un forum. Grazie invece per il project, lo provo subito domani mattina. Sei stato davvero gentilissimo. Complimenti per il bel sito, che ho avuto occasione di scoprire meglio in questi giorni.
thank u :)
-
Allora son finalmente riuscito a vedere il mio db. Confermo che era un problema di versione di SQLite perchè con il tuo progetto funzionava tutto, mentre appena copiavo il mio db crashava. Ho convertito il file CSV in Sqlite con questo freeware comodissimo che funziona meglio del Sql Browse Explorer: TkSQLite - mynote.
Adesso il database è visibile dalle DDMS e riesco a caricare con la query i dati.
Grazie mille boss Franck
-
Buongiorno Frank
ora avrei la necessità di fare delle query filtrando sul DB. Ovvero ho aggiunto un Editext nel layout e vorrei che appena l'utente inserisce un valore mi venga "rinfrescata" la listview.
Come faccio a forzare un aggiornamento dei dati della query. C'è un update dell'adapter?
Grazie mille
-
Quote:
Originariamente inviato da
Tuzzo77
Buongiorno Frank
ora avrei la necessità di fare delle query filtrando sul DB. Ovvero ho aggiunto un Editext nel layout e vorrei che appena l'utente inserisce un valore mi venga "rinfrescata" la listview.
Come faccio a forzare un aggiornamento dei dati della query. C'è un update dell'adapter?
Grazie mille
Ciao Tuzzo77, replico la risposta anche qui :) :
per cominciare - nella classe dove popoli la listview all'avvio della classe - ti conviene inglobare il codice di popolamento lista in una procedura (quindi la metti in coda alla classe, ma prima dell'ultima parentesi graffa dell'end-class ovviamente) e la chiami, chessò 'caricaListView. A quel punto, in testa alla classe, dove ora c'è ancora qul codice di popolamento lista, richiami semplicemente caricaListView(). Dopo che ti sei assicurato che funziona, nell'intercettare l'onEdit dell'editText richiami caricaListView passando come valore del LIKE %valore% il parametro del Text attuale dell'editText, tipo ad esempio caricaListView(EditText1.getText().ToString())
Il metodo di SQLiteAdapter che ritorna un Cursor (da utilizzare in un SimpleCursorAdapter per popolare la ListView), dovrà essere del tipo:
codice:
public Cursor selectMieiValori(String pLike){
String query = "SELECT campi FROM tuaTabella WHERE nomecampo like %" + pLike + "%";
return sqLiteDatabase.rawQuery(query, null);
}
e dovrà alimentare la ListView ad ogni evento edit catturato
:)
-
Ciao a tutti, so che è passato un pò di tempo, ma vorrei un aiuto in merito alla seguente discussione
Devo richiamare un database esistente da una sottoattività, ma non ci riesco
il codice della mia attività secondaria(la quale viene lanciata con il metodo startActivity dall'attività principale, e qui dovrò copiare appunto il database dalla cartella assets in databases(che non me lo crea) per poi effettuare delle query sul database stesso
dove devo inserire
SQLiteAdapter mioadapter = new SQLiteAdapter();
e invece per effettuare la query devo creare una nuova classe o una nuova activity da lanciare per il codice Applicazione1Activity che è presente nella prima pagina di questa discussione
Grazie mille
-
tabella non trovata
Quote:
Originariamente inviato da
frank17next
Ciao,
intendo dire che quando nella main richiami openToRead(), di fatto utilizzi il metodo sqLiteHelper.getReadableDatabase(); che -se non trova il database già presente (cioè già copiato sul device) ne crea uno vuoto con soltanto la tabella android_metadata.
Prova subito a fare la query su quella tabella e vedi se aggiri l'errore table not found.
Se riesce vuol dire che è quello il caso.
Ancora: prova a rimuovere dal path del db /databases, copialo direttamente in /data/data/tuaapp/
Ciao, spero che tu mi possa dare qualche dritta.
Ho seguito il tuo esempio e dopo aver copiato il db da assets all'esecuzione della query il sistema risponde dicendo che non trova la tabella.
Il db da importare è stato creato con SQLite Manager x Firefox.
Forse non è compatibile con il db system di android?
Ed eventualmente con quale strumento potrei creare e popolare il db da importare nell'applicazione?
(In realtà ho notato che lo stesso problema viene fuori se copio il db direttamente in .../databases in ECLIPSE.
Questo non motiverebbe la copia da codice.)
Grazie in anticipo per la risposta
-
Per creare il db, io ho usato con successo il SQLite per Windows a riga di comando, scaricato da questa pagina:
SQLite Download Page
Il file è:
sqlite-shell-win32-x86-3080500.zip
Link diretto al download:
http://www.sqlite.org/2014/sqlite-sh...86-3080500.zip
Al posto tuo, farei delle prove per vedere se il db è stato creato corettamente, prima di infilarlo nell'APK.
Per aprire il db su Pc io uso SQLite Database Browser:
SQLite Database Browser | Free Development software downloads at SourceForge.net
Inoltre, sei sicuro che nel codice android apri correttamente il database?
Magari il problema è più a monte dell'apertura della tabella