Non hai copiato il mio codice visto che nel mio le variabili sono prima del costruttore e nel tuo invece stanno dopo.
Non hai copiato il mio codice visto che nel mio le variabili sono prima del costruttore e nel tuo invece stanno dopo.
Ho provato a far cosi.. Visto che mi dava ugualmente errori
Per quello che vedo, apparte l'annotazione che ti ho fatto, non ci sono errori. Hai provato a fare un Clean? Il progetto te lo fa compilare? Puoi postare tutta la classe?
La classe che estende sqliteopenhelper ti serve per creare e aggiornare il tuo database, poi ne devi creare un altra che ti permetta in maniera semplice di eseguire le operazioni (come aggiungere o eliminare un record) sul tuo db.
questo è un esempio della classe che devi creare che ho trovato su internet per un database di contatti:
Comunque io ti consiglio di utilizzare i content provider come ho fatto anche io per la mia applicazione anche se hai bisogno di un po' più di lavoro, così puoi consultare il db con un cursor loader (una specie di async task), comunque trovi tutto quello che ti serve in questa guida:codice:import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.provider.ContactsContract; public class DbAdapter { private Context context; private SQLiteDatabase database; private DatabaseHelper dbHelper; // Database fields private static final String DATABASE_TABLE = "contact"; public static final String KEY_CONTACTID = "_id"; public static final String KEY_NAME = "name"; public static final String KEY_SURNAME = "surname"; public static final String KEY_SEX = "sex"; public static final String KEY_BIRTH_DATE = "birth_date"; public DbAdapter(Context context) { this.context = context; } public DbAdapter open() throws SQLException { dbHelper = new DatabaseHelper(context); database = dbHelper.getWritableDatabase(); return this; } public void close() { dbHelper.close(); } private ContentValues createContentValues(String name, String surname, String sex, String birth_date ) { ContentValues values = new ContentValues(); values.put( KEY_NAME, date ); values.put( KEY_SURNAME, flag_send_sms ); values.put( KEY_SEX, text_send_sms ); values.put( KEY_BIRTH_DATE, date_sent_sms ); return values; } //create a contact public long createContact(String name, String surname, String sex, String birth_date ) { ContentValues initialValues = createContentValues(name, surname, sex, birth_date); return database.insertOrThrow(DATABASE_TABLE, null, initialValues); } //update a contact public boolean updateContact( long contactID, String name, String surname, String sex, String birth_date ) { ContentValues updateValues = createContentValues(name, surname, sex, birth_date); return database.update(DATABASE_TABLE, updateValues, KEY_ CONTACTID + "=" + contactID, null) > 0; } //delete a contact public boolean deleteContact(long contactID) { return database.delete(DATABASE_TABLE, KEY_ CONTACTID + "=" + contactID, null) > 0; } //fetch all contacts public Cursor fetchAllContacts() { return database.query(DATABASE_TABLE, new String[] { KEY_CONTACTID, KEY_NAME, KEY_SURNAME, KEY_SEX, KEY_BIRTH_DATE}, null, null, null, null, null); } //fetch contacts filter by a string public Cursor fetchContactsByFilter(String filter) { Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] { KEY_CONTACTID, KEY_NAME, KEY_SURNAME, KEY_SEX, KEY_BIRTH_DATE }, KEY_NAME + " like '%"+ filter + "%'", null, null, null, null, null); return mCursor; }
http : / /www . anddev . it / index.php?topic=8538.0
Riguardo al discorso sulla data, io ho salvato la data come fosse testo e per formattarla ho usato questa classe:
codice:import java.text.SimpleDateFormat; import java.util.Calendar; public class FormattedDateTime { public static String getDateTime(){ Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("d/M/yy H:m:s"); String dateTime = sdf.format(c.getTime()); return dateTime; } }
Ultima modifica di Caco85; 10-07-14 alle 22:09
non ho capito questo:
private ContentValues createContentValues(String data, String ora, String valorestella) {
ContentValues values = new ContentValues();
values.put( KEY_NAME, date );
values.put( KEY_SURNAME, flag_send_sms );
values.put( KEY_SEX, text_send_sms );
values.put( KEY_BIRTH_DATE, date_sent_sms );
ho preso spunto da questo link http ://www. html.it/articoli/la-gestione-dei-database-in-android-3/
cosa sono date, flag_send_sms ect... mi chiede di inizilizzarle... ma dove?
values.put?
questo è il mio codice..
Ultima modifica di xixietto; 11-07-14 alle 16:36
come faccio a leggere i valore presenti nel database?
Ultima modifica di xixietto; 12-07-14 alle 23:36
Te lo avevo già detto qui come si fa. In altre parole fai una query che seleziona tutto dalla tabella e tramite un while prendi i valori uno ad uno e li inserisci in un ArrayList, nel mio caso di tipo String ma se devi recuperare molti valori devi usare un Oggetto.
sapresti aiutarmi a modificare questo codice?
e farlo diventare un arraylist....
in principio questo codice mi mostra solo il numero di record presenti...
ora vorrei che mi mostrasse i valori dei record...
private void recuperaNumeroRecord() {
//Chiediamo l'accesso al db
SQLiteDatabase db = mMioDbHelper.getReadableDatabase();
//Query per recuperare il numero di righe presenti nel db
final String sql = "SELECT COUNT(*) FROM tabella";
Cursor c = db.rawQuery(sql, null);
if(c.moveToFirst()) {
tView.setText(c.getString(0));
}
}
sapete come si può inviare al database sqlite di android...
i valori presi da un metodo?
io ho provato così.. ma è errato
...........
contentValues.put("data", data().getText().toString());
...........