docs: @SuppressWarnings("unchecked")
      @BindingAdapter(value = {"itemBinding", "itemTypeCount", "items", "adapter", "itemDropDownLayout", "itemIds", "itemIsEnabled"}, requireAll = false)
      public static <T> void setAdapter(AdapterView adapterView, ItemBinding<T> itemBinding, Integer itemTypeCount, List items, BindingListViewAdapter<T> adapter, @LayoutRes int itemDropDownLayout, BindingListViewAdapter.ItemIds<? super T> itemIds, BindingListViewAdapter.ItemIsEnabled<? super T> itemIsEnabled) {
          if (itemBinding == null) {
              throw new IllegalArgumentException("onItemBind must not be null");
          }
          BindingListViewAdapter<T> oldAdapter = (BindingListViewAdapter<T>) unwrapAdapter(adapterView.getAdapter());
          if (adapter == null) {
              if (oldAdapter == null) {
                  int count = itemTypeCount != null ? itemTypeCount : 1;
                  adapter = new BindingListViewAdapter<>(count);
              } else {
                  adapter = oldAdapter;
              }
          }
          adapter.setItemBinding(itemBinding);
          adapter.setDropDownItemLayout(itemDropDownLayout);
          adapter.setItems(items);
          adapter.setItemIds(itemIds);
          adapter.setItemIsEnabled(itemIsEnabled);
  
          if (oldAdapter != adapter) {
              adapterView.setAdapter(adapter);
          }
      }