Использование списка в ListView

#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);