Android Data Binding Library edit

Data binding in RecyclerView Adapter

It’s also possible to use data binding within your RecyclerView Adapter.

Data model

public class Item {

private String name;

public String getName() { return name; }

}

XML Layout

<TextView

android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=”@{item.name}”/>

Adapter class

public class ListItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private Activity host; private List items;

public ListItemAdapter(Activity activity, List items) { this.host = activity; this.items = items; }

@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // inflate layout and retrieve binding ListItemBinding binding = DataBindingUtil.inflate(host.getLayoutInflater(), R.layout.list_item, parent, false);

return new ItemViewHolder(binding);

}

@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Item item = items.get(position);

ItemViewHolder itemViewHolder = (ItemViewHolder)holder;
itemViewHolder.bindItem(item);

}

@Override public int getItemCount() { return items.size(); }

private static class ItemViewHolder extends RecyclerView.ViewHolder { ListItemBinding binding;

ItemViewHolder(ListItemBinding binding) {
    super(binding.getRoot());
    this.binding = binding;
}

void bindItem(Item item) {
    binding.setItem(item);
    binding.executePendingBindings();
}

}

}

Table Of Contents
10 Data Binding Library
39 ACRA
64 Menu
112 Loader
119 Xposed
132 Colors
135 Fresco
140 AdMob
147 Button
156 Vk SDK
170 XMPP
176 OpenCV
200 FileIO
203 Moshi
217 Paint
231 AIDL
241 JCodec
243 Okio
255 Looper
  ↑ ↓ to navigate     ↵ to select     Esc to close