• Dragi prijatelji, kreiran je nov forum "Socijalna zastita" na kome ce se pricati o svim pitanjima vezanim za ovu aktuelnu temu u drustvu

Uzimanje svih vrednosti iz tabele - Android

Shadowles

Obećava
Banovan
Poruka
74
Imam SQLiteHelper klasu i u njoj ovako:

Java:
@Override
    public void onCreate(SQLiteDatabase MyDB) {
        MyDB.execSQL("CREATE table Profesor(id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT, full_name TEXT, field TEXT, semester TEXT)");
        MyDB.execSQL("CREATE table Predmet(id INTEGER PRIMARY KEY AUTOINCREMENT, subject TEXT, semester TEXT)");
        MyDB.execSQL("CREATE table Profesor_Predmet(id_professor INTEGER PRIMARY KEY, id_subject INTEGER)");
    }

Zatim unutra imam ovu metodu

Java:
    public ArrayList<String> getProfessorData(String username) {
        SQLiteDatabase MyDB = this.getReadableDatabase();
        Cursor cursor = MyDB.rawQuery("SELECT * FROM Profesor WHERE username = ?", new String[] {username});
        ArrayList<String> data = new ArrayList<>();
        data.add(String.valueOf(cursor.getInt(1)));
        data.add(cursor.getString(2));
        data.add(cursor.getString(3));
        data.add(cursor.getString(4));
        data.add(cursor.getString(5));
        data.add(cursor.getString(6));

        cursor.close();
        return data;
    }

Ne znam da li se ovako uzimaju vrednosti iz tabele u Javi. Dalje pokušam u aktivnosti uzeti i prikazati podatke ali kad god nakon logovanja udjem u tu aktivnost, prekine mi rad aplikacije:

Java:
professorData = db.getProfessorData(username);

        professorID.setText(professorData.get(0));
        usernameInfo.setText(professorData.get(1));
        String[] full_name = professorData.get(2).split(" ");
        firstName.setText(full_name[0]);
        lastName.setText(full_name[1]);
        subject.setText(professorData.get(3));
        semester.setText(professorData.get(4));

Zna li neko?
 

Shadowles

Obećava
Banovan
Poruka
74
Uspeo sam ovaj deo. Promenio sam funkciju u helperu:

Java:
    public Cursor getData(String username) {
        SQLiteDatabase MyDB = this.getReadableDatabase();
        Cursor cursor = MyDB.rawQuery("SELECT * FROM Profesor WHERE username = ?", new String[] {username});
        return cursor;
    }

A u aktivnosti mogu ovo:

Java:
        Cursor result = db.getData(username);
        StringBuffer buffer = new StringBuffer();
        while (result.moveToNext()) {
            buffer.append("Professor ID: " + result.getInt(0));
            buffer.append("Professor username: " + result.getString(1));
            buffer.append("Professor password: " + result.getString(2));
            buffer.append("Professor full name: " + result.getString(3));
            buffer.append("Professor subject: " + result.getString(4));
            buffer.append("Professor semester: " + result.getString(5));
        }

Medjutim, meni ne trebaju ovi podaci ovako, ja želim da budu unutar liste. Ovo sam prikazao pomoću AlertDijaloga i radi super, svi podaci su tu. Ali kako da umesto buffera to bude lista? Ili, kako izvući ove vrednosti iz buffera?
 

bmaxa

Buduća legenda
Poruka
37.050
Uspeo sam ovaj deo. Promenio sam funkciju u helperu:

Java:
    public Cursor getData(String username) {
        SQLiteDatabase MyDB = this.getReadableDatabase();
        Cursor cursor = MyDB.rawQuery("SELECT * FROM Profesor WHERE username = ?", new String[] {username});
        return cursor;
    }

A u aktivnosti mogu ovo:

Java:
        Cursor result = db.getData(username);
        StringBuffer buffer = new StringBuffer();
        while (result.moveToNext()) {
            buffer.append("Professor ID: " + result.getInt(0));
            buffer.append("Professor username: " + result.getString(1));
            buffer.append("Professor password: " + result.getString(2));
            buffer.append("Professor full name: " + result.getString(3));
            buffer.append("Professor subject: " + result.getString(4));
            buffer.append("Professor semester: " + result.getString(5));
        }

Medjutim, meni ne trebaju ovi podaci ovako, ja želim da budu unutar liste. Ovo sam prikazao pomoću AlertDijaloga i radi super, svi podaci su tu. Ali kako da umesto buffera to bude lista? Ili, kako izvući ove vrednosti iz buffera?
Moras da napravis listbox tabelu pa da napunis. To je GUI element, ne znam kako se zove u Androidu. U principu mozda ima pod imenom table ili tako nekako...
 

Shadowles

Obećava
Banovan
Poruka
74
Uspeo sam, ahahaha, nisam bio inicijalizovao arraylist...

Java:
 Cursor result = db.getData(username);

        while (result.moveToNext()) {
                  professorData.add(String.valueOf(result.getInt(0)));
                  professorData.add(result.getString(1));
                  professorData.add(result.getString(2));
                  professorData.add(result.getString(3));
                  professorData.add(result.getString(4));
                  professorData.add(result.getString(5));
        }

        Toast.makeText(this, professorData.get(1), Toast.LENGTH_SHORT).show();

Sad ću izvlačiti deo po deo i prikazivati ih kroz TextView. Ceo dan radim ovu aplikaciju za faks.

pocetni meni.jpg


Znači, i registracija i logovanje i prikaz podataka i logout i ovo i ono. Uff...
 
Da biste mogli da kreirate nove teme, trajno koristite svoje ime i ne pogađate stalno slike - kliknite ovde da se registrujete.

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.