1、引入jar包
file ->project structure ->app->library dependency 选择recyclerVier
2、增加Obj.java
package com.nndou.yy.recyclertest01;
public class Obj { private String name; private String des; public Obj(String name,String des){ this.name = name; this.des = des; } public String getName(){ return name; } public String getDes(){ return des; } }
3、增加 ObjAdapter.java
package com.nndou.yy.recyclertest01; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.ArrayList; /** * Created by yy on 16/7/6. */ public class ObjAdapter extends RecyclerView.Adapter<ObjAdapter.MyViewHolder>{ public Context mContext; public ArrayList<Obj> mDatas; public ObjAdapter(Context mContext, ArrayList<Obj> mDatas) { this.mContext = mContext; this.mDatas = mDatas; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from(mContext).inflate(R.layout.raw, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { Obj obj = mDatas.get(position); holder.objName.setText(obj.getName()); holder.objDes.setText(obj.getDes()); } @Override public int getItemCount() { return mDatas.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView objName; TextView objDes; public MyViewHolder(View view) { super(view); objName = (TextView) view.findViewById(R.id.obj_name); objDes = (TextView) view.findViewById(R.id.obj_des); } } }
4、增加 raw.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:text="New Text" android:id="@+id/obj_name" android:layout_marginLeft="10dp" android:gravity="center" /> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:text="New Text" android:id="@+id/obj_des" android:layout_marginLeft="10dp" android:gravity="center" /> </LinearLayout>
5、增加控件
<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rlist" >
6、增加功能代码
package com.nndou.yy.recyclertest01; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private ObjAdapter mAdapter; private ArrayList<Obj> mDatas = new ArrayList<Obj>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); mAdapter = new ObjAdapter(this,mDatas); mRecyclerView = (RecyclerView) findViewById(R.id.rlist); //mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //mRecyclerView.setLayoutManager(new GridLayoutManager(this,4)); //mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL)); mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)); mRecyclerView.setAdapter(mAdapter); } private void initData() { for(int i = 0;i<200;i++){ Obj obj = new Obj("a"+i,"b"+i); mDatas.add(obj); } } }