RecyclerView点击事件、加载不同布局
2016-02-02 17:03
507 查看
/** * 浏览记录界面 * Created by Menglinghua on 2016/1/8. */ public class BrowserrecordAdapter extends RecyclerView.Adapter <BrowserrecordAdapter.MyViewHoler>{ private Context context;//上下文 private List<BrowserBean> list; private List<BrowserBean> groupList; private static final int IS_NORMAL = 1;//主体充值、消费记录 private static final int IS_HEADER = 2;//分组的标题 public BrowserrecordAdapter(Context context,List<BrowserBean> list,List<BrowserBean> groupList){ this.context = context; this.list = list; this.groupList = groupList; } //通过viewType来加载不同的布局,viewType是从getItemViewType得到的 @Override public MyViewHoler onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHoler viewHoler = null; if(viewType==IS_HEADER){ View view = LayoutInflater.from(context).inflate(R.layout.browser_record_group_item,parent,false); viewHoler = new MyViewHoler(view,IS_HEADER); return viewHoler; }else if(viewType ==IS_NORMAL){ View view = LayoutInflater.from(context).inflate(R.layout.browser_record_item,parent,false); viewHoler = new MyViewHoler(view,IS_NORMAL); return viewHoler; } return null; } //绑定数据,也是根据类型加载 @Override public void onBindViewHolder(MyViewHoler holder, int position) { if(groupList.contains(list.get(position)) && holder.viewType==IS_HEADER){ holder.tv_browser_header.setText(list.get(position).getCreatetime()); }else if(holder.viewType==IS_NORMAL){ final BrowserBean browserBean = list.get(position); holder.tv_browser_name_item.setText(browserBean.getGoodsname()); holder.tv_browser_price_itme.setText(browserBean.getGoodsprice()); //根据imgUrl设置图片 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ToastUtil.showToast(context,"被点击了"); //点击进入商品详情界面 Intent intent = new Intent(context, CommodityDetailActivity_.class); intent.putExtra(UIHelper.INTENT_COMMODITY_ID_KEY,browserBean.getId()); context.startActivity(intent); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { ToastUtil.showToast(context, "被长安了"); //长按弹出提示窗,是否确定被删除 /* DBHelper.getInstance(context).deleteBrowserBeanByKey(browserBean.getId()); list.remove(browserBean.getId());*/ AlertDialog.Builder builder = new AlertDialog.Builder(context); final AlertDialog dialog = builder.create(); //dialog.setMessage("确定要清楚历史记录吗?"); View view =LayoutInflater.from(context).inflate(R.layout.browser_alert_view, null); Button btn_browser_cancel = (Button) view.findViewById(R.id.btn_browser_cancel); btn_browser_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); Button btn_browser_sure = (Button) view.findViewById(R.id.btn_browser_sure); btn_browser_sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DBHelper.getInstance(context).deleteBrowserBeanByKey(browserBean.getId()); //Log.e("--","---b--"+browserList.size()); BrowserrecordAdapter.this.notifyDataSetChanged(); dialog.dismiss(); } }); dialog.setView(view); dialog.show(); return true;//true:不再执行setOnClickListener } }); } } @Override public int getItemCount() { return list.size()!=0?list.size():0; } /** * item布局类型 * @param position * @return */ @Override public int getItemViewType(int position) { if (groupList.contains(list.get(position))) { return IS_HEADER;//分组标题 } else { return IS_NORMAL;//充值、消费记录 } } public class MyViewHoler extends RecyclerView.ViewHolder{ private TextView tv_browser_header;//分组的标题 private TextView tv_browser_name_item;//充值、消费的金额 private TextView tv_browser_price_itme;//充值、消费的时间 private ImageView iv_browser_item; public int viewType; public MyViewHoler(View itemView,int viewType) { super(itemView); this.viewType = viewType; if (viewType==IS_HEADER){ tv_browser_header = (TextView) itemView.findViewById(R.id.tv_browser_header_item); }else if(viewType==IS_NORMAL){ tv_browser_name_item = (TextView) itemView.findViewById(R.id.tv_browser_name_item); tv_browser_price_itme = (TextView) itemView.findViewById(R.id.tv_browser_price_itme); iv_browser_item = (ImageView) itemView.findViewById(R.id.iv_browser_item); } } } }
相关文章推荐
- Eclipse 如何查看jdk源码
- Apple Swift 中文教程 高速參考 基本的语法
- axure快捷键
- rails 分页插件 Kaminari 的 数组分页
- 自动投票软件功能分析
- “windows 不能在本地计算机启动Apache2” 解决办法
- lvs基于fwm定义集群服务
- Linux下使用别名alias
- linux shell 编程7 tomcat的启动停止
- 发现IE8一个关于下载office2007 docx文档的bug
- Vikki与您共享系列七:社会化网络能让你赚钱吗?(2)
- Vikki与您共享系列六:社会化网络能让你赚钱吗?(1)
- SQLite学习手册(目录)
- 国内外10大项目外包平台
- oracle 11.2.0.3安装报错 ID: oracle.install.commons.util.exception... 2015-03-05 00:19:31
- java1.8的几大新特性(一)
- 大家都来看看你们关注的网站值多少钱
- Aaron 与您共享系列五:最适合威客阅读的书籍
- 一个简单的JS图片浏览功能
- ubuntu中文文件名在xp下显示为乱码的解决办法