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>