AutoAdapter
AutoAdapter
A library for for simplifying adapter creation
Content
Single Layout
String[] names = new String[] {"Jason", "Benny", "World"};
class ViewHolder implements IViewHolder<String> {
@InjectView(R.id.text)
TextView text;
public void bind(View view) {
ButterKnife.inject(this, view);
}
public void update(String data) {
text.setText("Hello " + data);
}
}
listView.setAdapter(new AutoListAdapter<String>(names, new ViewCreator(R.layout.list_item, ::ViewHolder));
Multiple Layout
class ViewHolder1 implements IViewHolder<Stock> {
// xxxxxxx
}
class ViewHolder2 implements IViewHolder<Stock> {
// bla bla bla
}
ViewCreatorCollection collection = new ViewCreatorCollection()
collection.add((data, position, itemCount) -> position == 1, new ViewCreator(R.layout.list_item_1, ::ViewHolder1));
ViewCreatorCollection collection = new ViewCreatorCollection()
collection.add((data, position, itemCount) -> position == 2, new ViewCreator(R.layout.list_item_2, ::ViewHolder2));
listView.setAdapter(new AutoListAdapter<Stock>(stocks, collection);
Paging ListView
AdapterPagingListener<Stock> pagingListener = new AdapterPagingListener<Stock>() {
void onLoadPage(AdapterPagingCompleteHandler receiver, Stock previous, int position) {
// bla bla bla
}
}
ViewCreatorCollection collection = new ViewCreatorCollection()
collection.add((data, position, itemCount) -> position == 1, new ViewCreator(R.layout.list_item_1, ::ViewHolder1));
ViewCreatorCollection collection = new ViewCreatorCollection()
collection.add((data, position, itemCount) -> position == itemCount - 1 && data == null, new ViewCreator(R.layout.list_item_loading, ::LoadingViewHolder));
AutoListPagingAdapter pagingAdapter = new new AutoListPagingAdapter<Stock>(stocks, collection)
pagingListener.setPagingListener(pagingListener);
listView.setAdapter(new AutoListPagingAdapter<Stock>(pagingAdapter);
Using with Gradle
dependencies {
compile 'com.benny.library:autoadapter:0.1.1'
}
Discussion
QQ Group: 516157585