android-RecyclerView

1.导入依赖:

implementation 'com.android.support:recyclerview-v7:24.2.1'

2.xml布局:

<!--列表,网格式-->
<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler"
    android:layout_width="match_parent"
    android:layout_height="100dp">

</android.support.v7.widget.RecyclerView>
<!--正常,垂直-->
<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    </android.support.v7.widget.RecyclerView>

3.逻辑代码编写

思路:初始化,准备数据,设置显示方式(个人理解,读者勿喷)

A.activity中的代码:

a.初始化:

private RecyclerView rv1;
private RecyclerView rv2;
rv1 =findViewById(R.id.rv2);
rv2 =findViewById(R.id.recycler);
b.数据
private void initData() {
    for (int i = 0; i < 100; i++) {
        BJTJInfo info = new BJTJInfo("测试数据"+i,i);
        list.add(info);
    }
}
c.设置显示方式
LinearLayoutManager layoutManager =new LinearLayoutManager(this);
rv1.setLayoutManager(layoutManager);
adapter1 = new MyAdapterRecycler_Line(list);
rv1.setAdapter(adapter1);

c步骤中的适配器代码逻辑整理:

1.新建一个类继承

RecyclerView.Adapter<MyAdapterRecycler_Line.ViewHolder> 

注:此处的ViewHolder是内部类

2.必须要实现方法:

//构造方法
public MyAdapterRecycler_Line(List<BJTJInfo> bjtjInfos) {
    this.bjtjInfos = bjtjInfos;
}

//加载布局
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.bjtj_item,parent,false);
    ViewHolder holder =new ViewHolder(view,mItemClickListener);
    return holder;
}

//绑定数据
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    holder.content.setText(bjtjInfos.get(position).getContent());
    holder.count.setText(bjtjInfos.get(position).getCount()+"");
}

//数据条数
@Override
public int getItemCount() {
    return bjtjInfos.size();
}
//内部类,红色字体是做item点击事件
static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
    private MyItemClickListener clickListener;
    TextView content;
    TextView count;
    public ViewHolder(View view,MyItemClickListener mItemClickListener) {
        super(view);
        this.clickListener = mItemClickListener;
        content = view.findViewById(R.id.tv_content);
        count = view.findViewById(R.id.tv_count);
        view.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (clickListener != null) {
            clickListener.onItemClick(v, getPosition());
        }

    }
}

4.返回到activity中代码编写recycle显示方式

LinearLayoutManager layoutManager =new LinearLayoutManager(this);
rv1.setLayoutManager(layoutManager);
adapter1 = new MyAdapterRecycler_Line(list);
rv1.setAdapter(adapter1);
rv2.setLayoutManager(new GridLayoutManager(MainActivity.this.getBaseContext(),3));
MyAdapterRecycler_Line adapter = new MyAdapterRecycler_Line(bjtjInfos);
rv2.setAdapter(adapter);

基本使用结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kenadc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值