我正在构建一个导航抽屉,它将有多个部分,如下所示:
Sliding Menu
物理学
物理基础知识
关于物理学的七个简要教训
新物理学
物理学家的世界
主题
物理学
化学
生物学
艺术
设置
关于
退出
第1部分:第1部分将根据第2部分中选择的主题加载书籍列表。默认情况下,将加载第一个主题的书籍列表。
第2节:第2节是学生订阅的主题列表。
第3节:所有学生都一样
要填充导航抽屉用户界面,我想出了如下所示的菜单结构:
BookMenu
部分的ArrayList
部分
部分ID,
部分标题
书籍的ArrayList
书籍
bookID,
bookTitle
我被困在以下项目上:
1.从适配器填充列表视图,以BookMenu作为输入
2.当主题被更改时仅动态改变第一部分
非常感谢任何帮助!
谢谢!
注意:附图像
答案 0 :(得分:0)
您可以通过不同的视图类型轻松完成。例如 -
class MyData{
String text;
boolean isHeader;
}
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
ArrayList<MyData> allData;
class ViewHolder0 extends RecyclerView.ViewHolder {
...
}
class ViewHolder2 extends RecyclerView.ViewHolder {
...
}
@Override
public int getItemViewType(int position) {
// Just as an example, return 0 or 2 depending on list(let assume 0 for header 1 for data
// Note that unlike in ListView adapters, types don't have to be contiguous
return allData.get(position).isHeader?0:1;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 0: return new ViewHolder0(header view);
case 1: return new ViewHolder2(data view);
...
}
}
}
如果数据已更新,则只需更新dataList并在适配器上调用notifyDataSetChange()。
希望它会对你有所帮助:)。