万能适配器
万能适配器依赖:
添加给主项目Gradle的依赖
maven {
url 'https://jitpack.io'
}
添加给需要项目的依赖
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.42'
implementation 'com.android.support:recyclerview-v7:28.0.0'
万能适配器的代码
首先需要封装一个Bean类,将需要显示的数据封装进去
String pic;
String title;
public Bean(String pic, String title) {
this.pic = pic;
this.title = title;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
适配器代码
MainActivity activity;
public MyBaseRecyclerViewAdapter(int layoutResId, @Nullable List<Bean> data, MainActivity activity) {
super(layoutResId, data);
this.activity = activity;
}
@Override
protected void convert(BaseViewHolder helper, Bean item) {
helper.setText(R.id.tv,item.getTitle());
Glide.with(activity).load(item.getPic()).into((ImageView) helper.getView(R.id.iv));
}
通过Activity传入数据源以及布局文件
String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=200&page=1";
ArrayList<Bean> list = new ArrayList<>();
MyBaseRecyclerViewAdapter myBaseRecyclerViewAdapter;
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.rv);
OkGo.<String>get(path).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String body = response.body();
Gson gson = new Gson();
JavaBean javaBean = gson.fromJson(body, JavaBean.class);
List<JavaBean.DataBean> data = javaBean.getData();
for (int i=0;i<data.size();i++) {
JavaBean.DataBean dataBean = data.get(i);
String pic = dataBean.getPic();
String title = dataBean.getTitle();
list.add(new Bean(pic,title));
}
myBaseRecyclerViewAdapter = new MyBaseRecyclerViewAdapter(R.layout.layout, list,MainActivity.this);
recyclerView.setAdapter(myBaseRecyclerViewAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
}
});