您的位置:首页 > 其它

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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: