#java #android
#java #Android
Вопрос:
Я создал класс Contact, который содержит общую структуру моей базы данных SQL. Я хочу получать свои данные в виде списка, поэтому я использую следующий код в своей MainActivity
List<Contact> contacts = db.getAllContacts();
// Error in this line
ArrayAdapter adapter = new ArrayAdapter<List<Contact>>(this, R.layout.activity_main, contacts);
contactList.setAdapter(adapter);
Это выдает ошибку Cannot resolve constructor
getAllContacts() выглядит следующим образом
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;
}
Итак, как мне получить свои данные в виде списка и заполнить свой список?
Комментарии:
1. использовать
new ArrayAdapter<Contact>
вместоnew ArrayAdapter<List<Contact>>
2.Вызовите
ArrayAdapter
конструктор следующим образом:ArrayAdapter adapter = new ArrayAdapter(this, R.layout.activity_main, contacts);
developer.android.com/reference/android/widget /…, int, java.util.List<T>)
Ответ №1:
Шаблон ArrayAdapter — это тип записи, в вашем случае Customer, а не List, поэтому правильный код будет
ArrayAdapter adapter = new ArrayAdapter<Contact>(this, R.layout.activity_main, contacts);