Witajcie,
Mam problem z którym sobie nie umiem poradzić dlatego chciałbym prosić Was o nakierowanie. Próbowałem różnych kombinacji ale żadna nie zadziałała. Chciałbym pobierać z bazy danych SQLite i wyświetlać w odpowiednich polach, dane które siedzą w konkretnym wierszu. ID wiersza z którego chcę pobrać dane będę pobierał z pola w swojej aplikacji. Jednorazowo pobrany może zostać wyłącznie jeden wiersz. W wierszy jest 12 kolumn i konkretną wartość z konkretnej kolumny chcę wyświetlić w konkretnym polu. Nazwy moich kolumn siedzą w zmiennych COL_2, COL_3 itd. Pod COL_1 znajduje się ID. Mam coś takiego:
public Cursor undo(int id) {
SQLiteDatabase db = this.getReadableDatabase();
String sqlSelect = "SELECT " + COL_2 + ", " + COL_3 + ", " + COL_4 + ", " + COL_5 + ", " + COL_6 + ", " + COL_7 + ", " + COL_8 + ", " + COL_9 + ", " + COL_10 + ", " + COL_11 + ", " + COL_12 + ", " + COL_13 + " FROM " + TABLE_NAME + " WHERE " + COL_1 + "=" + id;
Cursor res = db.rawQuery(sqlSelect, null);
if(res != null) {
res.moveToFirst();
}
return res;
}
Teraz nie bardzo wiem jak pobrane wartości przekazać dalej no i jak przekazać ten parametr który będzie pobierany z pola :(. Oczywiście wszystko ma się dziać po wciśnięciu przycisku. Czy mógłbym prosić o jakieś podpowiedzi. Jak mówię, szukałem wszędzie ale żaden przykład, nawet po odpowiedniej modyfikacji, nie chce działać. Albo coś źle modyfikuję ale po prostu jest on nie właściwy.
---EDIT---
Powoli już zaczynam łapać. Utworzyłem przycisk w klasie MainActivity. W przycisku przekazuję parametr (swoje id wiersza z którego mają zostać pobrane dane, na razie wpisuję go na sztywno ale docelowo będzie pobierany z pola, z tym problemu nie mam żadnego). Tak to wygląda:
pokaz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor undo = matchDb.undo(1);
}
});
Problem mam teraz taki, w jaki sposób przekazać pobrane parametry z klasy obsługującej bazę, do klasy MainActivity aby móc później je wstawić w odpowiednie pola? Oczywiście mógłbym te pola podeklarować w swojej klasie obsługującej bazę i tam robić bezpośrednio przypisanie pobranych danych ale chcę to zrobić w klasie MainActivity ponieważ tam mam już wszystko poinicjowana. Wystarczy tylko przypisać. Tylko kurcze nie wiem jak te pobrane wartości przekazać do innej klasy :(