gpt4 book ai didi

android - 如何在 ListView 中添加多个标题 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:22 27 4
gpt4 key购买 nike

我有一个用于我的 ListView 的自定义适配器 我想将项目名称添加为我的工作请求的 header 。添加单个 header 效果很好,但我不确定如何使用 addHeaderView 添加多个 header 。我不明白应该将 setAdapter 放在哪里,还是应该放置多次?

这是我的单个标题的 java 代码:

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);

现在,我尝试了两个 header :

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);

但这行不通!它只给了我项目 2 标题和它下面的所有 7 个条目。谁能告诉我怎么了?我猜它与 setAdapter 有关。谢谢!

最佳答案

我不认为你想做的事情按照你尝试做的方式是可能的。当您使用 addHeaderView 时,它会将您的 ListAdapter 包装在 HeaderViewListAdapter 中。我查看了它的文档 here这似乎意味着您可以有多个 header ,但它们都在顶部(duh, header )。

听起来您真正想要的是分隔符...

你可以使用 CommonWare's MergeAdapter .它会让您插入适配器和 View (以您希望的任何顺序)并将它们作为单个适配器呈现给 ListView 。您只需将每个内容部分的 header 和适配器交给它,然后将其设置到您的列表中。

伪代码示例:

myMergeAdapter = new MergeAdapter(); 
myMergeAdapter.addView(HeaderView1);
myMergeAdapter.addAdapter(listAdapter1);
myMergeAdapter.addView(HeaderView2);
myMergeAdapter.addAdapter(listAdapter2);
setListAdapter(myMergeAdapter);

关于android - 如何在 ListView 中添加多个标题 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com