【文件属性】:
文件名称:AndroidAdapter库CommonAdapter.zip
文件大小:339KB
文件格式:ZIP
更新时间:2022-08-05 23:48:52
开源项目
CommonAdapter 一个适用于ListView/GridView/RecyclerView的Adapter库,简化大量重复代码,支持多种布局,可自定义图片加载的实现。功能特点:简化大量重复代码支持多布局自定义图片加载常用数据操作view复用RecyclerView item 点击和长按事件gradle依赖dependencies {
compile 'com.classic.adapter:commonadapter:1.0'
//项目中使用到RecyclerView,需要添加依赖
compile 'com.android.support:recyclerview-v7:23.2.0'}ListView/GridView 使用示例:List newsList = ...;
//单布局文件
listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(new CommonAdapter(context,
//item布局文件
R.layout.item_none_picture, newsList ) {
@Override public void onUpdate(BaseAdapterHelper helper, News item) {
//BaseAdapterHelper详细用法,见下方
helper.setText(R.id.xxx, item.getTitle())
//可实现ImageLoad接口,进行图片自定义加载方式,demo里面使用的Glide
.setImageLoad(new GlideImageLoad())
.setImageUrl(R.id.xxx,item.getCoverUrl());
}
});
//多布局文件
private final class MultipleLayoutAdapter extends CommonAdapter{
public MultipleLayoutAdapter(Context context, int layoutResId, List data) {
super(context, layoutResId, data);
}
//多种布局重写此方法即可
@Override public int getLayoutResId(News item) {
int layoutResId = -1;
switch (item.getNewsType()){
case News.TYPE_NONE_PICTURE: //布局样式一
layoutResId = R.layout.item_none_picture;
break;
case News.TYPE_SINGLE_PICTURE: //布局样式二
layoutResId = R.layout.item_single_picture;
break;
case News.TYPE_MULTIPLE_PICTURE: //布局样式三
layoutResId = R.layout.item_multiple_picture;
break;
更多的布局样式 ...
}
return layoutResId;
}
@Override public void onUpdate(BaseAdapterHelper helper, News item) {
helper.setImageLoad(new GlideImageLoad());
switch (item.getNewsType()){
case News.TYPE_NONE_PICTURE: //布局样式一
helper.setText(R.id.xxx, item.getTitle())
.setImageUrl(R.id.xxx,item.getCoverUrl());
break;
case News.TYPE_SINGLE_PICTURE: //布局样式二
helper.setText(R.id.xxx, item.getTitle())
.setImageUrl(R.id.xxx,item.getCoverUrl());
break;
case News.TYPE_MULTIPLE_PICTURE: //布局样式三
helper.setText(R.id.xxx, item.getTitle())
.setImageUrl(R.id.xxx,item.getCoverUrl());
break;
更多的布局样式 ...
}
}
}
【文件预览】:
CommonAdapter-master
----gradlew(5KB)
----settings.gradle(33B)
----LICENSE.txt(1KB)
----checkstyle.xml(7KB)
----gradle()
--------wrapper()
----README.md(11KB)
----screenshots()
--------simple.png(56KB)
--------multiple.png(128KB)
--------main.png(19KB)
----gradlew.bat(2KB)
----commonadapter()
--------checkstyle.gradle(244B)
--------maven.gradle(2KB)
--------src()
--------findbugs.gradle(551B)
--------bintray.gradle(547B)
--------.gitignore(12B)
--------build.gradle(897B)
--------proguard-rules.pro(665B)
----gradle.properties(855B)
----.gitignore(538B)
----config.gradle(1KB)
----app()
--------src()
--------.gitignore(12B)
--------build.gradle(991B)
--------proguard-rules.pro(665B)
----build.gradle(996B)