Wyciąganie kolumn z bazy SQlite do listy w Androidzie

0

Witam

Chciałbym wyciągnąć z bazy dwie kolumny i móc je przetrzymywać w aplikacji (do listy jakiejś) do późniejszego ich wykorzystania. Jakim sposobem to zrobić? Chciałbym by była ta lista przetrzymywana w klasie GPSTracker za każdym razem tworzona, gdy aplikacja jest uruchamiana.

GPS Tracker:
http://wklej.org/hash/8f76c58dfbc/
A tu klasa odpowiadająca za baze. Chodzi mi o kolumny latitude i longitude.
http://wklej.org/hash/6a4ece14d29/

Może ktoś pomóc radą albo kodem, cokolwiek. Bo za bardzo nie wiem jak sobie z tym poradzić. Z góry dzięki.

1

Napisz sobie metodę w klasie zarządcy bazy. W tej metodzie użyl SQL żeby dostać czego chcesz. Później jedynie wywołujesz metodę. Do reprezentacji listy możesz wykorzystać ListView.

0

A pytanie jeszcze jedno, bo stworzyłem sobie tą metodę wyciągającą do ArrayListy, ale sposób do odwołania się do tej listy w innej klasie nie działa tak jak w Javie. Jest sposób jakiś w Androidzie na to specjalny? Array Adapter?

Kod metody:

public List<Lokalizacje> fromBase(){

        List<Lokalizacje> latLong = new ArrayList<Lokalizacje>();
        SQLiteDatabase db = this.getReadableDatabase();
        Lokalizacje loka = new Lokalizacje();
        String selectQuery = "SELECT " + KEY_LATITUDE + "," + KEY_LONGITUDE + " FROM " + TABLE_LOCATIONS;
        
        try {
            Cursor crs = db.rawQuery(selectQuery, null);

            if (crs != null)
                crs.moveToFirst();

            loka.setLatitude(crs.getDouble(crs.getColumnIndex(KEY_LATITUDE)));
            loka.setLongitiude(crs.getDouble(crs.getColumnIndex(KEY_LONGITUDE)));
            latLong.add(loka);

            crs.close();
        } catch (SQLiteException e) {
            Log.e("sqLite-getdata", "getDataSQL", e.fillInStackTrace());
        } catch (Exception e) {
            Log.e("sqLite-getdata", "getDataException", e.fillInStackTrace());
            Log.e("info", e.getMessage(), e.fillInStackTrace());
        }
        db.close();
        return latLong;
    }

0

w innej klasie robisz instancję DBHelpera (DBHelper ma być singletonem). I po tej instancji odwołujesz się do metody fromBase()

0

Mógłbyś mi to dokładniej wytłumaczyć ?

0

Ale co takiego dokładnie ?

0

Jakaś mała podpowiedź jak to zrobić, bo nie do końca wiem :/

0

No już Ci podpowiedziałem że musisz stworzyć DBHelpera. W DBHelperze robisz metodę fromBase() która przegląda bazę i zwraca listę.

Może zacznij coś pisać i przyjdź z konkretnym problemem.

0

Tak to już mam dawno, tylko oddzielnie tutaj wpisałem kod tej metody. Próbowałem wcześniej instancjami kombinować, ale nie wychodziło to najlepiej po stronie drugiej klasy. Nie wiem czy nie ma jakiejś metody getList czy coś w tym stylu, żeby ją potem w drugiej klasie wywołać do użycia? Ok to z tymi instancjami jak teraz zrobić, bo tu nie wiem już.

1 użytkowników online, w tym zalogowanych: 0, gości: 1