修改Adapter实现GridView列表中的增加按钮
来源:互联网 发布:怎样网络金融理财 编辑:程序博客网 时间:2024/04/29 22:17
如下是常见的GridView,红色是显示的图片,绿色加号是增加图片的按钮,如何实现这样的效果?
第一个思路,是在数据list最后位置增加一个加号图片数据,但这样改动原始list数据的方法显然不好,牵扯很多。
第二个思路,是在Adapter里面的数据list最后一个位置增加加号图片数据,但是,为了显示一个按钮而变动正常数据list总是不妥的。再有一点,Adapter中数据list的头指针是自己的,list里面的items数据项可能和外面的list共享的,也即可能是同一体。可能是这样,这点我没细看。
第三个思路是我推荐的,其方法是在Adapter比对View和数据item时偷偷插入一环,
public class RvAdapterCollectPic extends Adapter<RvAdapterCollectPic.ViewHolder> {
List<LvRowFile> listItems;
public RvAdapterCollectPic(List<LvRowFile> li) {
this.listItems = li;
}
@Override
public int getItemCount() {
return listItems.size() + 1; //偷偷为GridView增加一个子View位置
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == listItems.size()) { //在最后位置增加一个加号图片
holder.file_icon.setImageDrawable(here is a add pic));
holder.file_icon.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
}
});
return;
}
holder.file_icon.setImageDrawable(listItems.get(position)); // 平时就是普通的list数据
List<LvRowFile> listItems;
public RvAdapterCollectPic(List<LvRowFile> li) {
this.listItems = li;
}
@Override
public int getItemCount() {
return listItems.size() + 1; //偷偷为GridView增加一个子View位置
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == listItems.size()) { //在最后位置增加一个加号图片
holder.file_icon.setImageDrawable(here is a add pic));
holder.file_icon.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
}
});
return;
}
holder.file_icon.setImageDrawable(listItems.get(position)); // 平时就是普通的list数据
holder.file_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
});
}
}
类似地,可以让getItemCount()返回“listItems.size() + 2”来实现如下效果而不改变list数据本身:
蓝色指向上一级目录。
1 0
- 修改Adapter实现GridView列表中的增加按钮
- 关于ListView中的Adapter说明以及列表增加最后一项(更多选项)的实现
- asp.net 中利用GridView实现增加,修改,删除
- 谈谈yii2-GridView如何实现列表页直接修改数据
- GridView中的链接按钮
- listview&adapter实现列表功能
- gridview+adapter
- 窗口上的【增加】【修改】【删除】【查询】【刷新】【查看】【退出】按钮的实现方法
- GridView连接SQL Server 2005实现增加、更新、删除按钮时遇到的两个错误及解决办法
- Gridview实现银行选择列表
- 在GridView的删除按钮上增加客户端确认提示。
- listview adapter类实现数据列表
- 列表中的修改在单独页面呈现 实现方法
- 如何:响应 GridView 控件中的按钮事件
- GridView中的命令按钮的应用
- 如何:响应 GridView 控件中的按钮事件
- 响应 GridView 控件中的按钮事件
- 如何:响应 GridView 控件中的按钮事件
- 树的基础
- 如何预置Android 手机 APK
- 404 Not Found
- 老顽童:史上最变态7个问题,李嘉诚答对了4个!能答对3个你就是天才,敢试试
- Ronco创投原则和趋势 - 硅谷创业教父Paul Graham文摘
- 修改Adapter实现GridView列表中的增加按钮
- luajava数值和对象传递的一个例子
- Android系统Zygote和SystemServer启动过程
- myeclipse 中clean的作用
- [LeetCode]Binary Tree Maximum Path Sum
- hdu2565
- C++ 三种继承
- Qt for Linux/X11 - Deployment Qt在Linux下的部署 (一)
- iOS开发工具——网络封包分析工具Charles