public override Android.Views.View GetView(int position, Android.Views.View convertView , Android.Views.ViewGroup parent) { Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> itemViewDelegate = mItemViewDelegateManager .GetItemViewDelegate(mDatas[position], position); int layoutId = itemViewDelegate.GetItemViewLayoutId(); Com.Zhy.Adapter.Abslistview.ViewHolder viewHolder = null; if (convertView == null) { Android.Views.View itemView = Android.Views.LayoutInflater.From(mContext).Inflate (layoutId, parent, false); viewHolder = new Com.Zhy.Adapter.Abslistview.ViewHolder(mContext, itemView, parent , position); viewHolder.mLayoutId = layoutId; OnViewHolderCreated(viewHolder, viewHolder.GetConvertView()); } else { viewHolder = (ViewHolder)convertView.Tag; viewHolder.mPosition = position; } Jbox <T> box = (Jbox <T>)GetItem(position); Convert(viewHolder, box.Value, position); return(viewHolder.GetConvertView()); }
public virtual Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegateManager <T> AddDelegate (int viewType, Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> delegate_) { if (delegates.Get(viewType) != null) { throw new System.ArgumentException("An ItemViewDelegate is already registered for the viewType = " + viewType + ". Already registered ItemViewDelegate is " + delegates.Get(viewType )); } delegates.Put(viewType, delegate_); return(this); }
public virtual Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegateManager <T> AddDelegate (Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> delegate_) { int viewType = delegates.Size(); if (delegate_ != null) { delegates.Put(viewType, delegate_); viewType++; } return(this); }
public virtual Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegateManager <T> RemoveDelegate (Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> delegate_) { if (delegate_ == null) { throw new System.ArgumentNullException("ItemViewDelegate is null"); } int indexToRemove = delegates.IndexOfValue(delegate_); if (indexToRemove >= 0) { delegates.RemoveAt(indexToRemove); } return(this); }
public virtual int GetItemViewType(T item, int position) { int delegatesCount = delegates.Size(); for (int i = delegatesCount - 1; i >= 0; i--) { Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> delegate_ = delegates.ValueAt (i); if (delegate_.IsForViewType(item, position)) { return(delegates.KeyAt(i)); } } throw new System.ArgumentException("No ItemViewDelegate added that matches position=" + position + " in data source"); }
public virtual void Convert(Com.Zhy.Adapter.Abslistview.ViewHolder holder, T item , int position) { int delegatesCount = delegates.Size(); for (int i = 0; i < delegatesCount; i++) { Com.Zhy.Adapter.Abslistview.Base.ItemViewDelegate <T> delegate_ = delegates.ValueAt (i); if (delegate_.IsForViewType(item, position)) { delegate_.Convert(holder, item, position); return; } } throw new System.ArgumentException("No ItemViewDelegateManager added that matches position=" + position + " in data source"); }