Android Open Source - GridListViewAdapters List Grid Adapter






From Project

Back to project page GridListViewAdapters.

License

The source code is released under:

Apache License

If you think the Android project GridListViewAdapters 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

/**
 * Copyright 2014-present Biraj Patel//from w w w  .ja v  a2 s.  c o m
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may
 * not use this file except in compliance with the License. You may obtain a
 * copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package com.birin.gridlistviewadapters;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;

public abstract class ListGridAdapter<T, CVH> extends BaseGridAdapter<T, CVH> {

  private List<T> dataList = new ArrayList<T>();

  public ListGridAdapter(Context context, int totalCardsInRow) {
    super(context, totalCardsInRow);
  }

  @Override
  public T getCardData(int absoluteCardPosition) {
    validatePositionOrThrow(absoluteCardPosition);
    return dataList.get(absoluteCardPosition);
  }

  @Override
  public void validatePositionOrThrow(int position) {
    if (position < 0 || position >= getAbsoluteCardsCount()) {
      throw new IndexOutOfBoundsException("Position requested "
          + position + " Available list size "
          + getAbsoluteCardsCount());
    }
  }

  @Override
  public int getAbsoluteCardsCount() {
    if (null != dataList) {
      return dataList.size();
    }
    return 0;
  }

  /**
   * Adds the new item into existing list.
   * 
   * @param dataList
   *            The new data list to be appended at end of current list
   * 
   * @see ListGridAdapter#swapDataList(List)
   * 
   */
  public void addItemsInGrid(List<T> newDataList) {
    int newDataSize = 0;
    if (newDataList != null && newDataList.isEmpty() == false) {
      this.dataList.addAll(newDataList);
      newDataSize = getAbsoluteCardsCount();
    }
    updateGridWithNewSize(newDataSize);
  }

  /**
   * if you want to change the complete data list then consider using this
   * function, this will clear current data & replace with new data list
   * passing null instead of valid data will simply clear whole data.
   * 
   * @param dataList
   *            the new data list.
   */
  public void swapDataList(List<T> newDataList) {
    this.dataList.clear();
    invalidateStructure();
    addItemsInGrid(newDataList);
  }

  /**
   * Deletes item from list for given position
   * 
   * @param position
   *            the position at which item needs to be removed.
   */
  public void deleteItemFromList(int position) {
    validatePositionOrThrow(position);
    dataList.remove(position);
    invalidateStructure();
    updateGridWithNewSize(getAbsoluteCardsCount());
  }

  /**
   * Deletes given object from list.
   * 
   * @param data
   *            the object to be deleted.
   * @return true, if successful
   */
  public boolean deleteItemFromList(T data) {
    boolean isRemoved = dataList.remove(data);
    if (isRemoved == true) {
      invalidateStructure();
      updateGridWithNewSize(getAbsoluteCardsCount());
    }
    return isRemoved;
  }

  /**
   * Clears the complete data list & updates UI.
   */
  public void clearList() {
    swapDataList(null);
  }
}




Java Source Code List

com.birin.cursorgridadapter.base.BaseCursorGridActivity.java
com.birin.cursorgridadapter.base.BaseEmployeeCursorGridAdapter.java
com.birin.cursorgridadapter.datasetup.CursorRetainingFragment.java
com.birin.cursorgridadapter.datasetup.TestContentProviderSqlHelper.java
com.birin.cursorgridadapter.datasetup.TestContentProvider.java
com.birin.cursorgridadapter.demo1.FixedCursorItems.java
com.birin.cursorgridadapter.demo2.CardClickHandlingEmployeeCursorGridAdapter.java
com.birin.cursorgridadapter.demo2.CardClickHandlingFixedCursorItems.java
com.birin.cursorgridadapter.demo3.ChildAndCardClickHandlingEmployeeCursorGridAdapter.java
com.birin.cursorgridadapter.demo3.ChildAndCardClickHandlingFixedCursorItems.java
com.birin.cursorgridadapter.demo4.FixedCursorItemsRotationSupport.java
com.birin.cursorgridadapter.demo5.UnlimitedCursorItemsRotationSupportAutoLoadMore.java
com.birin.cursorgridadapter.demo6.UnlimitedCursorItemsRotationClickToLoadMore.java
com.birin.gridlistviewadapters.BaseGridAdapter.java
com.birin.gridlistviewadapters.Card.java
com.birin.gridlistviewadapters.CursorFilter.java
com.birin.gridlistviewadapters.CursorGridAdapter.java
com.birin.gridlistviewadapters.ListGridAdapter.java
com.birin.gridlistviewadapters.RowViewHolder.java
com.birin.gridlistviewadapters.dataholders.CardDataHolder.java
com.birin.gridlistviewadapters.dataholders.CardPositionInfo.java
com.birin.gridlistviewadapters.dataholders.RowDataHolder.java
com.birin.gridlistviewadapters.utils.ChildViewsClickHandler.java
com.birin.gridlistviewadapters.utils.GridDataStructure.java
com.birin.gridlistviewadapters.utils.MaxCardsInfo.java
com.birin.gridlistviewadapters.utils.OnLoadMoreRequestListener.java
com.birin.gridlistviewadapters.utils.PositionCalculator.java
com.birin.gridlistviewadapters.utils.ViewHolderPositionTagger.java
com.birin.gridlistviewadaptersdemo.BaseDemoMenuList.java
com.birin.gridlistviewadaptersdemo.CursorDataDemos.java
com.birin.gridlistviewadaptersdemo.JavaUtilListDataDemos.java
com.birin.gridlistviewadaptersdemo.ParentDemoMenuList.java
com.birin.gridlistviewadaptersdemo.common.CharacterDrawable.java
com.birin.gridlistviewadaptersdemo.common.Constants.java
com.birin.gridlistviewadaptersdemo.common.EmployeeCardViewHolder.java
com.birin.gridlistviewadaptersdemo.common.RandomInfoGenerator.java
com.birin.listgridadapter.base.BaseEmployeeListGridAdapter.java
com.birin.listgridadapter.base.BaseListGridActivity.java
com.birin.listgridadapter.datasetup.Employee.java
com.birin.listgridadapter.datasetup.RetainedDataFragment.java
com.birin.listgridadapter.demo1.SimplestListGridAdapterUsageDemoActivity.java
com.birin.listgridadapter.demo2.FixedListItems.java
com.birin.listgridadapter.demo3.CardClickHandlingEmployeeListGridAdapter.java
com.birin.listgridadapter.demo3.CardClickHandlingFixedListItems.java
com.birin.listgridadapter.demo4.ChildAndCardClickHandlingEmployeeListGridAdapter.java
com.birin.listgridadapter.demo4.ChildAndCardClickHandlingFixedListItems.java
com.birin.listgridadapter.demo5.FixedListItemsRotationSupport.java
com.birin.listgridadapter.demo6.UnlimitedListItemsRotationSupportAutoLoadMore.java
com.birin.listgridadapter.demo7.UnlimitedListItemsRotationSupportAutoLoadMoreMax100Items.java
com.birin.listgridadapter.demo8.UnlimitedListItemsRotationSupportClickToLoadMore.java