Witam,
Piszę pewną aplikację na Androida, która wykorzystuje bazę danych SQLite.
W klasie obsługującej bazę jest metoda pobierająca wszystkie rekordy i dodająca je do listy.
Mam klasę ListItemActivity.java która ma za zadanie obsłużyć wyświetlenie pobranych danych jako listę.
Poniżej przedstawiam metodę która pobiera dane z bazy:
public List<Item> getAllItems(){
List<Item> itemList = new ArrayList<Item>();
String selectQuery = "SELECT * FROM " + TABLE_ITEMS;
SQLiteDatabase database = this.getWritableDatabase();
Cursor cursor = database.rawQuery(selectQuery, null);
if(cursor.moveToFirst()){
do{
Item item = new Item();
item.setID(Integer.parseInt(cursor.getString(0)));
item.setImie(cursor.getString(1));
item.setNazwisko(cursor.getString(2));
item.setTelefon(cursor.getString(3));
itemList.add(item);
}while(cursor.moveToNext());
}
return itemList;
}
A tutaj klasę, która ma za zadanie wyświetlić listę.
public class ListViewActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final DBHandler database = new DBHandler(this);
final List<Item> item;
item = database.getAllItems(); //pobranie wszystkich danych z bazy
ArrayAdapter<Item> adapter = new ArrayAdapter<Item>(this, R.layout.list, item);
setListAdapter(adapter);
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
// na razie pusto
}
});
}
}
No i teraz pytanie czy da się to w jakiś sposób łatwo wyświetlić? Teraz na liście wyświetlają się śmieci typu <nazwa_pakietu>[email protected]<jakiesZnaki>.
Generalnie to z bazy pobieram jakieś dane z kilku kolumn (Imie, Nazwisko, Telefon) co widać w kodzie.
Mam w klasie Item zaimplementowane metody getImie, getNazwisko, getTelefon.
Teraz zastanawiam się jak to w jakiś prosty sposób wyświetlić za pomocą ArrayAdapter?