» »

[Android] Pobiranje podatkov iz baze

[Android] Pobiranje podatkov iz baze

Ciklamen ::

Pozdrav.

Rad bi to kar imam v bazi spravil v ListView. Ampak ker ne morem pogruntati kako (tile Cursorji mi delajo še manjše preglavice) in ker na googlu nekako ne najdem tega, kar iščem, me zanima če mi kdo tu lahko pomaga.

In sicer, v Class-u imam metodo imenovano getDataWorkout(), pripisujem kodo zraven

DataWorkout getDataWorkout(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_DATA_WORKOUTS, new String[] { KEY_ID,
                        KEY_WORKOUT_NAME}, KEY_ID + "=" + id,
                new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        DataWorkout data = new DataWorkout(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1));
        return data;
    }


Tale snippet sem nekje našel na spletu in sem ga uporabil v svojem app-u. Ko sem debuggal se je zataknilo pri cursorju, kot tudi razumem je to samo za en data, ne za celotno bazo?
- End of the Post ->

shadeX ::

V čem je sploh problem? Kakšen error ti vrne LOGCAT?

Ko sem debuggal se je zataknilo pri cursorju, kot tudi razumem je to samo za en data, ne za celotno bazo?


Z Cursor objektom pridobivaš posamezen data, tistega ki želiš.

Ciklamen ::

Error mi da:

android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

Kaj je problem? Da ne znam pobrat vseh podatkov iz baze ^^ Baza je ustvarjena, saj ima 32 vnosov (imam metodo ki mi pač select-a vse iz baze in vrne število vnosov)
- End of the Post ->

shadeX ::

Potem ne izbiraš pravih podatkov zato ti vrne 0. Recimo na hitro, jaz iz ene baze zahtevam podatke na tale način. Sicer ni ravno pravilen ampak deluje..

String sqlAction = "SELECT "+FAVOURITES+" FROM "+DATABASE_TABLE+" WHERE "+FAVOURITES+" IS NOT NULL ORDER BY ID DESC";
Cursor cursor = database.rawQuery(sqlAction, null);

Ciklamen ::

List<DataWorkout> getDataWorkout() {
        SQLiteDatabase db = this.getReadableDatabase();

        List<DataWorkout> dtWorkout = new ArrayList<>();

        String query = "SELECT * FROM "+TABLE_DATA_WORKOUTS;
        Cursor cursor = db.rawQuery(query, null);
        if (cursor != null) {
            cursor.moveToFirst();
            do
            {
                DataWorkout dtW = new DataWorkout();
                dtW.setID(cursor.getInt(cursor.getColumnIndexOrThrow(KEY_ID)));
                dtW.setWorkout(cursor.getString(cursor.getColumnIndexOrThrow(KEY_WORKOUT_NAME)));
                dtWorkout.add(dtW);
            } while(cursor.moveToNext());
        }
        return dtWorkout;
    }


Sem nardil tako, pa sedaj loopa vse skozi. Hvala!
- End of the Post ->


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Android - Začetnik

Oddelek: Programiranje
111781 (1106) hurlimannxt
»

[android] java.lang.RuntimeException

Oddelek: Programiranje
141078 (770) piki12
»

[android] vstavljanje slike

Oddelek: Programiranje
71240 (1137) messi
»

sql-t stored procedure

Oddelek: Programiranje
101058 (925) detroit
»

C++ programirane v Open GL oz. Direct x

Oddelek: Programiranje
242979 (2250) Vesoljc

Več podobnih tem