Ho un adattatore personalizzato per il mio ListView
Desidero aggiungere nomi di progetto come intestazioni alle mie richieste di lavoro. L'aggiunta di una singola intestazione funziona correttamente, ma non sono sicuro di come aggiungere più intestazioni utilizzando addHeaderView
. Non capisco esattamente dove posizionare setAdapter
o si suppone che venga inserito più volte?Come aggiungere più visualizzazioni di intestazione in un ListView
Questo è il mio codice java per un singolo colpo di testa che funziona:
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);
Ora, io per due intestazioni ho provato questo:
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);
Ma questo non funziona! Mi dà solo l'intestazione Project 2 e tutte le 7 voci sottostanti. Qualcuno potrebbe dirmi cosa c'è che non va? Immagino che abbia qualcosa a che fare con setAdapter
. Grazie!
Avevo letto a riguardo. Volevo sapere se potevo farlo senza usare 'MergeAdapter'. Risulta che non posso. Grazie – Harsh