예제 #1
0
 public void RegisterDataSetObserver(DataSetObserver observer)
 {
     mDataSetObservable.RegisterObserver(observer);
     if (mAdapter != null)
     {
         mAdapter.RegisterDataSetObserver(observer);
     }
 }
        public override void SetAdapter(IListAdapter adapter)
        {
            // assert adapter in debug mode
//			if (BuildConfig.DEBUG && adapter != null) {
//				if (!(adapter.GetType() ==  (new PinnedSectionListAdapter()).GetType()))
//					throw IllegalArgumentException("Does your adapter implement PinnedSectionListAdapter?");
//				if (adapter.ViewTypeCount < 2)
//					throw new IllegalArgumentException("Does your adapter handle at least two types" +
//						" of views in getViewTypeCount() method: items and sections?");
//			}

            // unregister observer at old adapter and register on new one
            IListAdapter oldAdapter = Adapter;

            if (oldAdapter != null)
            {
                oldAdapter.UnregisterDataSetObserver(mDataSetObserver);
            }
            if (adapter != null)
            {
                adapter.RegisterDataSetObserver(mDataSetObserver);
            }

            // destroy pinned shadow, if new adapter is not same as old one
            if (oldAdapter != adapter)
            {
                destroyPinnedShadow();
            }

            base.SetAdapter(adapter);
        }
예제 #3
0
        public AdapterWrapper(IListAdapter wrapped)
        {
            this._wrappedAdapter = wrapped;

            NotificatingDataSetObserver dataSetObserver = new NotificatingDataSetObserver(NotifyDataSetChanged, NotifyDataSetInvalidated);
            wrapped.RegisterDataSetObserver(dataSetObserver);
        }
예제 #4
0
        public AdapterWrapper(IListAdapter wrapped)
        {
            this._wrappedAdapter = wrapped;

            NotificatingDataSetObserver dataSetObserver = new NotificatingDataSetObserver(NotifyDataSetChanged, NotifyDataSetInvalidated);

            wrapped.RegisterDataSetObserver(dataSetObserver);
        }
예제 #5
0
        public StickyGridHeadersListAdapterWrapper(IListAdapter adapter)
        {
            mDataSetObserver = new StickyGridHeadersListAdapterWrapperObserver(this);

            mDelegate = adapter;
            if (adapter != null)
            {
                adapter.RegisterDataSetObserver(mDataSetObserver);
            }
        }
예제 #6
0
 public void AddAdapter(IListAdapter adapter)
 {
     pieces.Add(adapter);
     adapter.RegisterDataSetObserver(new CascadeDataSetObserver());
 }
예제 #7
0
 public override void RegisterDataSetObserver(global::Android.Database.DataSetObserver observer)
 {
     mAdapter.RegisterDataSetObserver(observer);
 }
예제 #8
0
 public void RegisterDataSetObserver(DataSetObserver observer)
 {
     mAdapter.RegisterDataSetObserver(observer);
 }
		public override void SetAdapter (IListAdapter adapter)
		{
			// assert adapter in debug mode
//			if (BuildConfig.DEBUG && adapter != null) {
//				if (!(adapter.GetType() ==  (new PinnedSectionListAdapter()).GetType()))
//					throw IllegalArgumentException("Does your adapter implement PinnedSectionListAdapter?");
//				if (adapter.ViewTypeCount < 2)
//					throw new IllegalArgumentException("Does your adapter handle at least two types" +
//						" of views in getViewTypeCount() method: items and sections?");
//			}

			// unregister observer at old adapter and register on new one
			IListAdapter oldAdapter = Adapter;
			if (oldAdapter != null) oldAdapter.UnregisterDataSetObserver(mDataSetObserver);
			if (adapter != null) adapter.RegisterDataSetObserver(mDataSetObserver);

			// destroy pinned shadow, if new adapter is not same as old one
			if (oldAdapter != adapter) destroyPinnedShadow();

			base.SetAdapter (adapter);

		}