Android Open Source - RZAndroidBaseUtils View Holder Strategy Adapter






From Project

Back to project page RZAndroidBaseUtils.

License

The source code is released under:

MIT License

If you think the Android project RZAndroidBaseUtils listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.raizlabs.widget.adapters;
//  w w  w.  j  av  a  2  s.c o  m
import android.view.View;
import android.view.ViewGroup;

import com.raizlabs.widget.utils.ViewHolderStrategy;
import com.raizlabs.widget.utils.ViewHolderStrategyUtils;

/**
 * Adapter class which leverages an {@link ViewHolderStrategy} to populate
 * its views.
 * @author Dylan James
 *
 * @param <Item> The type of item that views will represent.
 * @param <Holder> The type of the view holder the {@link ViewHolderStrategy} uses.
 */
public class ViewHolderStrategyAdapter<Item> extends ListBasedAdapter<Item>{
  private ViewHolderStrategy<Item, ?> strategy;
  
  /**
   * Creates a {@link ViewHolderStrategyAdapter} that utilizes the given
   * {@link ViewHolderStrategy}.
   * @param strategy The strategy to use to create and populate views.
   */
  public ViewHolderStrategyAdapter(ViewHolderStrategy<Item, ?> strategy) {
    this.strategy = strategy;
  }

  @Override
  public boolean areAllItemsEnabled() {
    return strategy.areAllItemsEnabled();
  }

  @Override
  public boolean isEnabled(int position) {
    Item item = get(position);
    return strategy.isEnabled(item);
  }

  @Override
  public int getItemViewType(int position) {
    Item item = get(position);
    return strategy.getItemViewType(item);
  }

  @Override
  public int getViewTypeCount() {
    return strategy.getViewTypeCount();
  }

  @Override
  public long getItemId(int position) {
    return position;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    Item item = get(position);
    if (convertView == null) {
      // If we didn't get a recycled view, create a new one
      return ViewHolderStrategyUtils.createAndPopulateView(strategy, item, parent);
    } else {
      // We have a recycled view, so just repopulate it
      ViewHolderStrategyUtils.populateView(strategy, convertView, item);
      return convertView;
    }
  }
  
  public ViewHolderStrategy<Item, ?> getStrategy() {
    return this.strategy;
  }
  
  public void setStrategy(ViewHolderStrategy<Item, ?> strategy) {
    this.strategy = strategy;
    notifyDataSetChangedOnUIThread();
  }
}




Java Source Code List

com.raizlabs.baseutils.CompatibilityUtils.java
com.raizlabs.baseutils.IOUtils.java
com.raizlabs.baseutils.Logger.java
com.raizlabs.baseutils.Math.java
com.raizlabs.baseutils.StringUtils.java
com.raizlabs.baseutils.ThreadingUtils.java
com.raizlabs.baseutils.Wrapper.java
com.raizlabs.baseutils.examples.MainActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableExampleActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableListExampleActivity.java
com.raizlabs.baseutils.examples.simplegenericadapter.SimpleGenericAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewgroupadapter.ViewGroupAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewholderstrategy.SimpleViewHolderStrategyExampleActivity.java
com.raizlabs.collections.ListUtils.java
com.raizlabs.collections.MappableSet.java
com.raizlabs.collections.TransactionalHashSet.java
com.raizlabs.concurrent.BasePrioritizedRunnable.java
com.raizlabs.concurrent.ConcurrencyUtils.java
com.raizlabs.concurrent.PrioritizedRunnable.java
com.raizlabs.concurrent.Prioritized.java
com.raizlabs.content.sharing.SharingUtils.java
com.raizlabs.database.CursorIterable.java
com.raizlabs.database.CursorIterator.java
com.raizlabs.events.EventListener.java
com.raizlabs.events.Event.java
com.raizlabs.events.ProgressListener.java
com.raizlabs.events.SimpleEventListener.java
com.raizlabs.functions.Delegate.java
com.raizlabs.functions.Predicate.java
com.raizlabs.functions.Provider.java
com.raizlabs.graphics.ImageFactory.java
com.raizlabs.graphics.drawable.async.AsyncDrawableTask.java
com.raizlabs.graphics.drawable.async.AsyncDrawableUtils.java
com.raizlabs.graphics.drawable.async.AsyncDrawableWrapper.java
com.raizlabs.graphics.drawable.async.AsyncDrawable.java
com.raizlabs.graphics.drawable.async.BaseAsyncDrawableTask.java
com.raizlabs.imagecaching.ImageCache.java
com.raizlabs.imagecaching.PrefixedImageCacheAdapter.java
com.raizlabs.imagecaching.StubImageCache.java
com.raizlabs.json.JSONArrayParserDelegate.java
com.raizlabs.json.JSONHelper.java
com.raizlabs.synchronization.OneShotLock.java
com.raizlabs.tasks.RZAsyncTaskEvent.java
com.raizlabs.tasks.RZAsyncTaskListener.java
com.raizlabs.tasks.RZAsyncTask.java
com.raizlabs.util.observable.ObservableData.java
com.raizlabs.util.observable.ObservableListAdapter.java
com.raizlabs.util.observable.ObservableList.java
com.raizlabs.view.ViewCompatibility.java
com.raizlabs.view.animation.AnimationListenerWrapper.java
com.raizlabs.view.animation.RelativeLayoutParamsAnimation.java
com.raizlabs.view.animation.ResizeAnimation.java
com.raizlabs.widget.EvenLinearLayout.java
com.raizlabs.widget.ImageMixView.java
com.raizlabs.widget.SlideRevealLayout.java
com.raizlabs.widget.ViewUtils.java
com.raizlabs.widget.adapters.ListBasedAdapter.java
com.raizlabs.widget.adapters.SimpleGenericAdapter.java
com.raizlabs.widget.adapters.ViewGroupAdapter.java
com.raizlabs.widget.adapters.ViewHolderStrategyAdapter.java
com.raizlabs.widget.utils.SimpleViewHolderStrategy.java
com.raizlabs.widget.utils.ViewHolderStrategyConverter.java
com.raizlabs.widget.utils.ViewHolderStrategyUtils.java
com.raizlabs.widget.utils.ViewHolderStrategy.java