Получить счетчик списков, а затем обновить заголовок в listview
У меня есть 2 xml файла
`Заголовок` и `раздел`
затем я использую какое-то условие, чтобы разделить эти два, и результат этого таков
|8/2/2018| ---------- Data 1 Data 2 |8/2/2018| ---------- Data 1 Data 2 Data 3
Это listview, который группирует данные с одной и той же датой и заголовком 1 date для них.
Мой вопрос заключается в том, как я могу подсчитать все данные, а затем обновить заголовок? подобный этому
|8/2/2018 (2)| ---------- Data 1 Data 2 |8/2/2018 (3)| ---------- Data 1 Data 2 Data 3
Я использую `Listview` и `ListAdapter расширяет ArrayAdapter`
где я буду обновляться?
здесь
public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; ItemModel cell = (ItemModel) getItem(position); if (cell.isSectionHeader()) { //Display Date in Header XML } else { //Display in Section XML } }
или здесь
private ArrayList sortAndAddSections(ArrayList<ItemModel> itemList) { ArrayList<ItemModel> tempList = new ArrayList<>(); Collections.sort(itemList); String header = ""; for (int i = 0; i < itemList.size(); i++) { if (!(header.equals(itemList.get(i).getDate()))) { String data = itemList.get(i).getRemarks(); String date = itemList.get(i).getDate() ItemModel sectionCell = new ItemModel(date,data); sectionCell.setToSectionHeader(); tempList.add(sectionCell); header = itemList.get(i).getDate(); } tempList.add(itemList.get(i)); } return tempList; }
Обновленный
Вот как я переношу данные из базы данных в массив
private ArrayList<ItemModel> getItems() { Cursor data = myDb.get_plan(email); ArrayList<ItemModel> items = new ArrayList<>(); while (data.moveToNext()) { String date = data.getString(3); String data1 = data.getString(4); items.add(new ItemModel(date,data1)); } return items; }
тогда вот куда идет условие
private ArrayList sortAndAddSections(ArrayList<ItemModel> itemList) { ArrayList<ItemModel> tempList = new ArrayList<>(); String header = ""; for (int i = 0; i < itemList.size(); i++) { if (!(header.equals(itemList.get(i).getDate()))) { String date = itemList.get(i).getDate(); String getData1 = itemList.get(i).getData1(); ItemModel sectionCell = new ItemModel(date,data1); sectionCell.setToSectionHeader(); tempList.add(sectionCell); header = itemList.get(i).getDate(); } tempList.add(itemList.get(i)); } return tempList; }
вот где я установил его в textview
@Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; ItemModel cell = (ItemModel) getItem(position); if (cell.isSectionHeader()) { v = inflater.inflate(R.layout.section_header, null); v.setClickable(false); TextView header = (TextView) v.findViewById(R.id.list_date); header.setText(cell.getDate()); } else { v = inflater.inflate(R.layout.listview_plan, null); TextView tv_data1 = v.findViewById(R.id.list_data1); tv_cusname.setText(cell.getData1()); } return v; }
Что я уже пробовал:
Попробуйте погуглить некоторые коды и применить его, но ничего не работает
Richard MacCutchan
Вам нужно получить количество записей, прежде чем вставлять заголовок раздела.