Android中RecyclerView的基础使用

零、

一、RecyclerView是什么

RecyclerView是support.v7包中的控件,显示数据、动画效果一气呵成,可以说是View中的豪杰了。官方的描述是

A flexible view for providing a limited window into a large data set.

总之就是ListView的加强版。那我们来看看怎么使用吧(其实基本方法和listView差不多)。

二、基础用法

首先我们要明确,如同ListView,我们需要RecyclerView和dataAdapter。 DataAdapter用来管理数据,例如将数据更新进RecyclerView中。而RecyclerView中LayoutManager可以用来管理你添加进来的item.

我们先在mainActivit布局的xml文件中加入RecyclerView。

<android.support.v7.widget.RecyclerView
android:id="@+id/id_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:divider="#ffff0000"
android:dividerHeight="10dp" >

</android.support.v7.widget.RecyclerView>
复制代码

我们也需要定义好要添加进去的data的布局:item.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="#ABABAB"
    android:layout_height="wrap_content" >
<TextView
    android:id="@+id/id_num"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:gravity="center"
    android:fillViewport="true"/>
</FrameLayout>
复制代码

注意RecyclerView和TextView的Id。

接下来就是用来管理数据的DataAdapter类了。我们自定义一个类,继承自RecyclerView.Adapter,记得也要定义一个ViewHolder类(继承RecyclerView.ViewHolder)。我们定义的Adapter类主要要重写三个函数:

public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType)

public void onBindViewHolder(ViewHolder holder,int position)

public int getItemCount()

这是具体的代码:

public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ViewHolder> {
    class ViewHolder extends RecyclerView.ViewHolder{
        private TextView tv;
        public ViewHolder(View view){
            super(view);
            tv = view.findViewById(R.id.id_num);
        }
}
    private Context context;
    private List<String> datas;
    public ItemAdapter(Context context){
        this.context = context;
}

    public void setDatas(List<String> datas){
        this.datas = datas;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
        ViewHolder holder = new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item,parent,false));
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder,int position){
        holder.tv.setText(datas.get(position);
    }

    @Override
    public int getItemCount(){
        return datas.size();
    }
}
复制代码

做完这些,我们就可以在MainActivi中加载RecyclerView和Item了。

加载数据我们首先要获得我们的RecyclerView:1、通过FindViewById找到RecyclerView,2、设置LayoutManag,2、设置Adapter

设置Adapter的主要思路是:1、实例化一个我们的Adapter对象,然后通过setDatas设置好数据以便Adapter将数据绑定在ViewHolder上。2、将自己的RecyclerView设置好Adapter。

好了,话不多说,Show me the code.

public class MainActivity extends AppCompatActivity {

private RecyclerView mRecyclerView;
private List<String> mDatas;
private ItemAdapter mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initData();
    mAdapter = new ItemAdapter(MainActivity.this);
    mAdapter.setDatas(mDatas);
    mRecyclerView = findViewById(R.id.id_recyclerview);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(mAdapter);
}

protected void initData()
{
    mDatas = new ArrayList<String>();
    for(int i =0;i<30;i++){
        mDatas.add("item"+i);
    }
}
复制代码

这样就O了个K了。

//作为Android开发的初学者,如果我有错误的地方或者不足的话欢迎大家指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值