android studio 1.2.1.1
首先配置下v7的库
dependencies {
compile 'com.android.support:recyclerview-v7:22.2.0'
}
public class RecyclerViewActivity extends Activity { private RecyclerView recycler; private RecyclerView.LayoutManager mLayoutManager; private List<HashMap<String,Object>> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.recyclerview); recycler = (RecyclerView) findViewById(R.id.recycler); //创建一个布局管理器 mLayoutManager = new LinearLayoutManager(this); //设置布局管理器 recycler.setLayoutManager(mLayoutManager); data = new ArrayList<>(); //初始化数据 for(int i = 0 ; i < 60 ;i++){ HashMap<String,Object> hashMap = new HashMap<>(); if(i%3 == 0){ hashMap.put("imageView",R.drawable.logo_wechat); }else if(i%3 == 1){ hashMap.put("imageView",R.drawable.logo_twitter); }else if(i%3 == 2){ hashMap.put("imageView",R.drawable.logo_whatsapp); } hashMap.put("textView","第" + i + "个"); data.add(hashMap); } //设置Adapter recycler.setAdapter(new MyAdapter(data)); } class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ private List<HashMap<String,Object>> datas; private View view; public MyAdapter(List<HashMap<String,Object>> datas){ this.datas = datas; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { //初始化布局 view = LayoutInflater.from(RecyclerViewActivity.this).inflate(R.layout.recycle_item,null); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder vh, int i) { // 绑定数据到ViewHolder上 HashMap<String,Object> hashMap = datas.get(i); vh.imageView.setImageResource(Integer.valueOf(hashMap.get("imageView").toString())); vh.textView.setText(hashMap.get("textView").toString()); } @Override public int getItemCount() { return datas.size(); } //实现ViewHolder与view分离 class ViewHolder extends RecyclerView.ViewHolder{ ImageView imageView; TextView textView; public ViewHolder(View itemView) { super(itemView); imageView = (ImageView) itemView.findViewById(R.id.imageView); textView = (TextView) itemView.findViewById(R.id.textView); } } } }
activity布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> item布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView"/> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> </LinearLayout>