Android Open Source - DynamicGrid Abstract Dynamic Grid Adapter






From Project

Back to project page DynamicGrid.

License

The source code is released under:

Apache License

If you think the Android project DynamicGrid 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 org.askerov.dynamicgrid;
/*from w w  w  . j  av  a 2 s. c  o m*/
import android.widget.BaseAdapter;

import java.util.HashMap;
import java.util.List;

/**
 * Author: alex askerov
 * Date: 9/6/13
 * Time: 7:43 PM
 */


/**
 * Abstract adapter for {@link org.askerov.dynamicgrid.DynamicGridView} with sable items id;
 */

public abstract class AbstractDynamicGridAdapter extends BaseAdapter implements DynamicGridAdapterInterface {
    public static final int INVALID_ID = -1;

    private int nextStableId = 0;

    private HashMap<Object, Integer> mIdMap = new HashMap<Object, Integer>();

    /**
     * Adapter must have stable id
     *
     * @return
     */
    @Override
    public final boolean hasStableIds() {
        return true;
    }

    /**
     * creates stable id for object
     *
     * @param item
     */
    protected void addStableId(Object item) {
        mIdMap.put(item, nextStableId++);
    }

    /**
     * create stable ids for list
     *
     * @param items
     */
    protected void addAllStableId(List<?> items) {
        for (Object item : items) {
            addStableId(item);
        }
    }

    /**
     * get id for position
     *
     * @param position
     * @return
     */
    @Override
    public final long getItemId(int position) {
        if (position < 0 || position >= mIdMap.size()) {
            return INVALID_ID;
        }
        Object item = getItem(position);
        return mIdMap.get(item);
    }

    /**
     * clear stable id map
     * should called when clear adapter data;
     */
    protected void clearStableIdMap() {
        mIdMap.clear();
    }

    /**
     * remove stable id for <code>item</code>. Should called on remove data item from adapter
     *
     * @param item
     */
    protected void removeStableID(Object item) {
        mIdMap.remove(item);
    }

}




Java Source Code List

org.askerov.dynamicgrid.AbstractDynamicGridAdapter.java
org.askerov.dynamicgrid.BaseDynamicGridAdapter.java
org.askerov.dynamicgrid.DynamicGridAdapterInterface.java
org.askerov.dynamicgrid.DynamicGridUtils.java
org.askerov.dynamicgrid.DynamicGridView.java
org.askerov.dynamicgrid.example.CheeseDynamicAdapter.java
org.askerov.dynamicgrid.example.Cheeses.java
org.askerov.dynamicgrid.example.GridActivity.java