![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2fae39b3a5fbd91be42cba5aec35ae3b.jpeg)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5a1889ea8d7b6827b3418fa2158af989.jpeg)
代码实现
package com.example.recycler.Base;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
public abstract class BaseAdapter<T> extends RecyclerView.Adapter<BaseHolder> {
Context context;
ArrayList<T> data;
public BaseAdapter(Context context, ArrayList<T> data) {
this.context = context;
this.data = data;
}
public abstract int getLayoutId();
@NonNull
@Override
public BaseHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v= LayoutInflater.from(context).inflate(getLayoutId(),null);
return new BaseHolder(v);
}
@Override
public void onBindViewHolder(@NonNull BaseHolder baseHolder, int i) {
bangding(baseHolder,i);
}
public abstract void bangding(BaseHolder baseHolder,int i);
@Override
public int getItemCount() {
return data.size();
}
}
适配器
package com.example.recycler.Base;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.SparseArray;
import android.view.View;
public class BaseHolder extends RecyclerView.ViewHolder {
SparseArray<View> array=new SparseArray<>();
public BaseHolder(@NonNull View itemView) {
super(itemView);
}
public View getView(int id ){
View v=null;
v=array.get(id);
if (v==null){
v=itemView.findViewById(id);
array.put(id,v);
}
return v;
}
}
适配器
package com.example.recycler.Base;
import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.recycler.Bean;
import com.example.recycler.R;
import java.util.ArrayList;
public class FirstAdapter extends BaseAdapter<Bean> {
ArrayList<Bean> beans;
Context context;
public FirstAdapter(Context context, ArrayList<Bean> data) {
super(context, data);
this.beans=data;
this.context=context;
}
@Override
public int getLayoutId() {
return R.layout.item2;
}
@Override
public void bangding(BaseHolder baseHolder, int i) {
ImageView imageView= (ImageView) baseHolder.getView(R.id.first_img);
imageView.setImageResource(beans.get(i).getPic());
TextView textView= (TextView) baseHolder.getView(R.id.first_tex);
textView.setText(beans.get(i).getName());
TextView textView2= (TextView) baseHolder.getView(R.id.first_tex2);
textView2.setText(beans.get(i).getWhat());
}
}
Bean类
package com.example.recycler;
public class Bean {
private String name;
private Integer pic;
private String what;
public Bean(String name, Integer pic, String what) {
this.name = name;
this.pic = pic;
this.what = what;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPic() {
return pic;
}
public void setPic(Integer pic) {
this.pic = pic;
}
public String getWhat() {
return what;
}
public void setWhat(String what) {
this.what = what;
}
}
Mainactivity:
package com.example.recycler;
import android.content.Intent;
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 com.example.recycler.Base.FirstAdapter;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private RecyclerView rece;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<Bean> list=new ArrayList<>();
list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嚶嚶嚶"));
list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嘻嘻嘻"));
list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嘟嘟嘟"));
list.add(new Bean("賈婷",R.mipmap.ic_launcher,"唧唧唧"));
list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嚕嚕嚕"));
GridLayoutManager manager2=new GridLayoutManager(this,2);
LinearLayoutManager manager = new LinearLayoutManager(this);
rece = (RecyclerView) findViewById(R.id.rece);
FirstAdapter firstAdapter = new FirstAdapter(this, list);
rece.setLayoutManager(manager2);
rece.setAdapter(firstAdapter);
}
}