Android App开发中RecyclerView控件的基本使用教程

2019-12-10 18:28:08王振洲

Just like ListView~

Activity

package com.zhy.sample.demo_recyclerview;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class HomeActivity extends ActionBarActivity
{

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

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

    initData();
    mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(mAdapter = new HomeAdapter());

  }

  protected void initData()
  {
    mDatas = new ArrayList<String>();
    for (int i = 'A'; i < 'z'; i++)
    {
      mDatas.add("" + (char) i);
    }
  }

  class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder>
  {

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
    {
      MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
          HomeActivity.this).inflate(R.layout.item_home, parent,
          false));
      return holder;
    }

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

    @Override
    public int getItemCount()
    {
      return mDatas.size();
    }

    class MyViewHolder extends ViewHolder
    {

      TextView tv;

      public MyViewHolder(View view)
      {
        super(view);
        tv = (TextView) view.findViewById(R.id.id_num);
      }
    }
  }

}

Activity的布局文件

<RelativeLayout xmlns:android="http://www.easck.com/apk/res/android"
  xmlns:tools="http://www.easck.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent" >

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

</RelativeLayout>