关于recyclerview的横向布局的宽度以及item的点击事件的添加
来源:互联网 发布:安道尔微信暗语知乎 编辑:程序博客网 时间:2024/05/16 01:47
package adapter;import android.annotation.TargetApi;import android.os.Build;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import com.example.lxy.yiyuangou.R;import java.util.ArrayList;import java.util.List;import vo.HotProduct;/** * Created by 栾先生 on 2016/5/11. */public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ItemViewHolder> { private int image[] = {R.drawable.home_btn_buy, R.drawable.home_btn_new, R.drawable.home_btn_show, R.drawable.home_btn_show, R.drawable.home_btn_show, R.drawable.home_btn_show};//HotProduct是一个JavaBean类 private List<HotProduct> datas; private OnItemClickListener mOnItemClickListener; public ListAdapter() { datas = new ArrayList<>(); for (int i = 1; i <= 6; i++) { HotProduct hp = new HotProduct("价值:¥500" + i, "500", "1000", "500"); datas.add(hp); } } /** * 自定义viewholder */ class ItemViewHolder extends RecyclerView.ViewHolder { ImageView iv; ProgressBar pb; TextView money, yi, zong, sheng; public ItemViewHolder(View v) { super(v); iv = (ImageView) v.findViewById(R.id.ren_iamge); yi = (TextView) v.findViewById(R.id.ren_yican); zong = (TextView) v.findViewById(R.id.ren_zong); sheng = (TextView) v.findViewById(R.id.ren_sheng); money = (TextView) v.findViewById(R.id.ren_money); pb = (ProgressBar) v.findViewById(R.id.ren_pb); } } @Override public ListAdapter.ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //这么添加布局,item中的marchparent将会失效// ItemViewHolder v = new ItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.renqi_item, null)); // 这么做为自适应的item 随着item的大小变化而变化 ItemViewHolder v = new ItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.renqi_item, parent, false)); return v; } @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) @Override public void onBindViewHolder(final ListAdapter.ItemViewHolder holder, int position) { ItemViewHolder vh = (ItemViewHolder) holder; vh.iv.setImageResource(image[position]); vh.money.setText(datas.get(position).getMoney()); vh.yi.setText(datas.get(position).getYicanyu()); vh.zong.setText(datas.get(position).getZong()); vh.sheng.setText(datas.get(position).getSheng()); if (mOnItemClickListener != null) { /** * 这里加了判断,itemViewHolder.itemView.hasOnClickListeners() * 目的是减少对象的创建,如果已经为view设置了click监听事件,就不用重复设置了 * 不然每次调用onBindViewHolder方法,都会创建两个监听事件对象,增加了内存的开销 */ if (!holder.itemView.hasOnClickListeners()) {// Log.e("ListAdapter", "setOnClickListener"); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getPosition(); mOnItemClickListener.onItemClick(v, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getPosition(); mOnItemClickListener.onItemLongClick(v, pos); return true; } }); } } } @Override public int getItemCount() { return image.length; } public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) { this.mOnItemClickListener = mOnItemClickListener; } /** * 处理item的点击事件和长按事件 */ public interface OnItemClickListener { public void onItemClick(View view, int position); public void onItemLongClick(View view, int position); }}
0 0
- 关于recyclerview的横向布局的宽度以及item的点击事件的添加
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 给RecyclerView的Item添加点击事件
- RecyclerView添加Item的点击事件
- 为RecyclerView添加item的点击事件
- 对RecyclerView的item添加点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- RecyclerView Item 的点击事件
- RecyclerView的item点击事件
- POJ 3468 A Simple Problem with Integers
- c++开发ocx入门实践二
- 计算机原理 —— 主板与内存映射
- 摩托车继承自行车和机动车
- mysql 下phpmyadmin安装
- 关于recyclerview的横向布局的宽度以及item的点击事件的添加
- Android Studio快捷键
- WS_DELIVERY_UPDATE 修改数量、过账日期并发货过账
- 第九周项目2-我的数组类
- unity 通过触摸屏幕产生射线实例化玩家
- 查找子树
- Windows 7 下 Ubuntu Kylin 16.04 LTS 双系统的安装
- TableViewCell 系统自带的几种样式
- unix编程(八)高级I/O