Ich versuche, eine einfache Kontakte-App zu erstellen, und habe ein Problem beim Abrufen von Daten aus einer Datenbank in eine Liste von Objekten festgestellt. Ich habe versucht, es ohne Objekte zu machen, und dann habe ich bemerkt, dass dieser Weg in der Praxis mehr genutzt wird. In dieser App möchte ich den Namen des Kontakts in einer Listenansicht anzeigen.Wie erhalte ich Daten aus einer Datenbank in eine Liste von Objekten und zeige sie in einer Listenansicht an?
So, hier ist mein Code:
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setPhoneNumber(cursor.getString(2));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
// return contact list
return contactList;
}
Methode in meiner MainActivity Daten abzurufen (hier etwas nicht in Ordnung ist, aber kann es nicht herausfinden:
public class Contact {
//private variables
int _id;
String _name;
String _phone_number;
// Empty constructor
public Contact(){
}
public Contact(String name){
this._name=name;
}
// constructor
public Contact(int id, String name, String _phone_number){
this._id = id;
this._name = name;
this._phone_number = _phone_number;
}
// constructor
public Contact(String name, String _phone_number){
this._name = name;
this._phone_number = _phone_number;
}
// getting ID
public int getID(){
return this._id;
}
// setting id
public void setID(int id){
this._id = id;
}
// getting name
public String getName(){
return this._name;
}
// setting name
public void setName(String name){
this._name = name;
}
// getting phone number
public String getPhoneNumber(){
return this._phone_number;
}
// setting phone number
public void setPhoneNumber(String phone_number){
this._phone_number = phone_number;
}
@Override
public String toString() {
return _name;
}
}
Methode in meiner DBHandler alle Daten abrufen):
public void printDatabase() {
List<Contact> listOfContacts = handler.getAllContacts();
for (Contact cn : listOfContacts) {
cn.getName();
listOfContacts.add(cn);
}
}
Sind Sie sicher, dass Sie alle Kontakte in der 'listofContacts' Liste bekommen? Welches Problem haben Sie? Sende dein Logcat. – Yashasvi
Kontaktname wird nicht in der Listenansicht – Nenco