Как поместить первый Arraylist в Item и второй Arraylist в SubItem (в ListView)? - PullRequest
0 голосов
/ 04 июня 2019

Ну, у меня есть база данных, и с помощью курсора я помещаю данные из базы данных в ArrayLists.С моим кодом, я могу показать только один ArrayList данных в элементе ListView.Но я хочу поместить первый ArrayList в Item и второй ArrayList в SubItem.Что мне нужно сделать?(Я могу дать больше информации или кода, если вам нужно)

Я уже пробовал ответы на подобные вопросы, но они мне не помогли.

    myDB = new DatabaseHelper(this);
    ArrayList<String> theNames = new ArrayList<>();
    ArrayList<Integer> theYear = new ArrayList<>();

    Cursor data = myDB.getListContents();
    if(data.getCount() == 0){
        Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
    }else{
        while(data.moveToNext()){
            theNames.add(data.getString(1));
            theYear.add(data.getInt(2));


            ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theNames);
            listView.setAdapter(listAdapter);


        }
    }

Я ожидаю увидеть данные первого ArrayList в ItemView List, а данные второго ArrayList в SubItem ListView.

1 Ответ

2 голосов
/ 04 июня 2019

Обычно это делается так, как если бы вы создавали собственный класс (скажем, Person) с двумя атрибутами: именем и датой (дата рождения? Что угодно). Затем, когда вы обрабатываете свой курсор, для каждой строки в базе данных создайте экземпляр вашего класса и заполните его именем и датой из курсора. Затем добавьте этот экземпляр класса в ваш ArrayList. Затем вам нужно будет создать собственный адаптер, который расширяет BaseAdapter. Вы должны передать ArrayList в конструктор этого адаптера. Затем в коде адаптера вы переопределяете метод getView, который передает позицию, и вы извлекаете экземпляр лица из ArrayList, и затем вы можете получить доступ к имени и дате этого человека. Это больше работы, но это не сложно. Просто найдите для создания пользовательского Адаптера и создания пользовательского класса, чтобы увидеть, как именно это сделать.

...