Tengo un adaptador personalizado para mi ListView
Quiero agregar nombres de proyectos como los encabezados de mis solicitudes de trabajo. Agregar un único encabezado funciona bien, pero no estoy seguro de cómo agregar varios encabezados usando addHeaderView
. No entiendo exactamente dónde colocar setAdapter
o se supone que debe colocarse varias veces?Cómo agregar varias vistas de encabezado en un ListView
Este es mi código java para una única cabecera que funciona:
mListView = (ListView)findViewById(R.id.dashboardList);
View header1 = getLayoutInflater().inflate(R.layout.listview_header, null, false);
tv = (TextView) header1.findViewById(R.id.listHeader);
adapter = new MyCustomAdapter(MyDashboardActivity.this, R.layout.mydashboard_row, dashboardBean);
tv.setText("Project 1");
mListView.addHeaderView(header1, null, false);
for (int i=0; i < 7; i++) {
dashboardBean.add(new DashboardBean(workRequests[i],status[i],actualHours[i]));
}
mListView.setAdapter(adapter);
Ahora, por dos cabeceras He intentado esto:
mListView = (ListView)findViewById(R.id.dashboardList);
View header1 = getLayoutInflater().inflate(R.layout.listview_header, null, false);
tv = (TextView) header1.findViewById(R.id.listHeader);
adapter = new MyCustomAdapter(MyDashboardActivity.this, R.layout.mydashboard_row, dashboardBean);
tv.setText("RxOffice");
mListView.addHeaderView(header1, null, false);
for (int i=0; i < 4; i++) {
dashboardBean.add(new DashboardBean(workRequests[i],status[i],actualHours[i]));
}
tv.setText(Project 2");
mListView.addHeaderView(header1, null, false);
for (int i=4; i < workRequests.length; i++) {
dashboardBean.add(new DashboardBean(workRequests[i],status[i],actualHours[i]));
}
mListView.setAdapter(adapter);
Pero esto no funciona! Solo me da el encabezado del Proyecto 2 y las 7 entradas debajo de él. ¿Alguien podría decirme qué pasa? Supongo que tiene algo que ver con setAdapter
. ¡Gracias!
Lo he leído sobre él. Quería saber si podría hacerlo sin usar 'MergeAdapter'. Resulta que no puedo. Gracias – Harsh