recyclerview基本使用使用

引用jar:
compile 'com.android.support:recyclerview-v7:+'
//边角处理第三方
compile 'com.android.support:cardview-v7:23.4.0'
//图片加载第三方
compile 'com.squareup.picasso:picasso:2.3.2'


第一步:添加控件
<android.support.v7.widget.RecyclerView
android:id="@+id/item_shouye01"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>

第二步:代码定义:
RecyclerView rv = (RecyclerView) view.findViewById(R.id.item_shouye01);

RecyclerViewAdapter adapter = new RecyclerViewAdapter(getContext(), null);
rv.setAdapter(adapter);

//定义listveiw的样式,是列表还是宫格样式(ListView or GridView 等等)
//grid样式
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 2);(2代表一行显示几个)
rv.setLayoutManager(layoutManager);
//listView样式
RecyclerView.LayoutManager layout = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL);(1表示行数或列数,HORIZONTAL 横着显示 ,VERTICAL 竖着显示)
rv.setLayoutManager(layout);

第三步:定义ViewHolder

public class ShouyeRVHoder01 extends RecyclerView.ViewHolder {
ImageView mIv;
TextView mTvJJ;
TextView mTvJG;
public ShouyeRVHoder01(View itemView) {
super(itemView);
mIv= (ImageView) itemView.findViewById(R.id.item_shouye01_rv01_iv);
mTvJJ= (TextView) itemView.findViewById(R.id.item_shouye01_rv01_tvjj);
mTvJG= (TextView) itemView.findViewById(R.id.item_shouye01_rv01_tvjg);
}
}

第四步:定义adapter
public class ShouyeRVAdapter01 extends RecyclerView.Adapter< ShouyeRVHoder01> {
/**
* ①onCreateViewHolder()
* 这个方法主要生成为每个Item inflater出一个View,但是该方法返回的是一个ViewHolder。
* 该方法把View直接封装在ViewHolder中,然后我们面向的是ViewHolder这个实例,
* 当然这个ViewHolder需要我们自己去编写。直接省去了当初的convertView.setTag(holder)和convertView.getTag()这些繁琐的步骤。
* <p/>
* ②onBindViewHolder()
* 这个方法主要用于适配渲染数据到View中。方法提供给你了一个viewHolder,而不是原来的convertView。
* <p/>
* ③getItemCount()
* 这个方法就类似于BaseAdapter的getCount方法了,即总共有多少个条目。
*/

ArrayList<ShouYeXQBean.HomeRecommendSubjectsBean.GoodsListBean> mRvData;
Context mContext;

public ShouyeRVAdapter01(Context mContext, ArrayList<ShouYeXQBean.HomeRecommendSubjectsBean.GoodsListBean> mRvData) {
this.mRvData = mRvData;
this.mContext = mContext;
}

@Override
public ShouyeRVHoder01 onCreateViewHolder(ViewGroup parent, int viewType) {
ShouyeRVHoder01 mShouyeRVHoder01 = new ShouyeRVHoder01(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_shouye_shouye01_rv_item01, parent, false));
return mShouyeRVHoder01;
}

@Override
public void onBindViewHolder(ShouyeRVHoder01 holder, int position) {
ShouYeXQBean.HomeRecommendSubjectsBean.GoodsListBean mGoodsListBean = mRvData.get(position);

Picasso.with(mContext).load(mGoodsListBean.getHd_thumb_url()).into(holder.mIv);

holder.mTvJJ.setText(mGoodsListBean.getGoods_name());
//取一位,如要取多位,写多几个0上去
DecimalFormat digits = new DecimalFormat("0.00");
double q01 = ((double) mGoodsListBean.getPrice() / 100);
holder.mTvJG.setText("¥ " + digits.format(q01));
}

@Override
public int getItemCount() {
return mRvData == null ? 0 : mRvData.size();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值