Показать все содержимое базы данных в ListView - PullRequest
0 голосов
/ 11 июля 2020

Я хочу показать все содержимое базы данных в виде списка в Android Studio, я ожидаю увидеть 3 строки, каждая строка которых содержит «имя, семейство и идентификатор», но я вижу комплекс имени пакета и некоторых других символов в следующем виде:

com.google. www.hmdbtest01.Person@529e71b4

com.google. www.hmdbtest01.Person@529e7238

com.google. www.hmdbtest01.Person@529e7298

если я Если в моей базе данных больше строк, я увижу в выводе больше строк, как указано выше.

мои коды следующие:

public class ListOfData extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_of_data);

    ListView  list = findViewById(R.id.list1);
    HmDbManager01 db= new HmDbManager01(this);
    ArrayList personList = db.getAll();
    ArrayAdapter<ArrayList> arrayList = new ArrayAdapter<ArrayList>(this,
    android.R.layout.simple_list_item_1, personList);

    list.setAdapter(arrayList);
}
}

db.getAll () выглядит следующим образом:

public ArrayList<Person> getAll(){
SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
Cursor cursor= sqLiteDatabase.rawQuery("SELECT * FROM tbl_person", null);
cursor.moveToFirst();
ArrayList<Person> allData = new ArrayList<>();

if(cursor.getCount() > 0){
    while (!cursor.isAfterLast()){
        Person p1 = new Person();
        p1.pID=cursor.getString(0);
        p1.pName=cursor.getString(1);
        p1.pFamily=cursor.getString(2);
        allData.add(p1);
        cursor.moveToNext();
    }
}
cursor.close();
sqLiteDatabase.close();
return allData;
}

и это Человек:

package com.google.www.hmdbtest01;
public class Person {
public String pID;
public String pName;
public String pFamily;
}

Дайте мне знать ваши комментарии по этой проблеме.

1 Ответ

0 голосов
/ 12 июля 2020

arrayListAdapter преобразует ваш personList в список строк

изменится следующим образом:

    ArrayList<String> persons = new ArrayList<String>();
    personList.forEach(personModel -> {
        persons.add(personModel.name + " " + personModel.lastName + " " + personModel.id);
    });
    ArrayAdapter<ArrayList> arrayList = new ArrayAdapter<ArrayList>(this,
            android.R.layout.simple_list_item_1, persons);
...