package com.konka.music.adapter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import android.widget.BaseAdapter;
public abstract class ArrayAdapter<T> extends BaseAdapter {
private ArrayList<T> mItems = new ArrayList<T>();
public ArrayAdapter() {
this(null);
}
public ArrayList<T> getAll() {
return mItems;
}
public ArrayAdapter(List<T> items) {
mItems = new ArrayList<T>();
if (items != null) {
mItems.addAll(items);
}
}
@Override
public int getCount() {
return mItems.size();
}
@Override
public T getItem(int position) {
return mItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public void addAll(Collection<? extends T> items) {
mItems.addAll(items);
notifyDataSetChanged();
}
public void addAll(@SuppressWarnings("unchecked") T... items) {
Collections.addAll(mItems, items);
notifyDataSetChanged();
}
public void addAll(int position, Collection<? extends T> items) {
mItems.addAll(position, items);
notifyDataSetChanged();
}
public void addAll(int position, @SuppressWarnings("unchecked") T... items) {
for (int i = position; i < (items.length + position); i++) {
mItems.add(i, items[i]);
}
notifyDataSetChanged();
}
public void clear() {
if (mItems != null) {
mItems.clear();
notifyDataSetChanged();
}
}
public void remove(int position) {
mItems.remove(position);
notifyDataSetChanged();
}
public void setmItems(ArrayList<T> mItems) {
if (mItems == null || mItems.size() == 0) {
return;
}
this.mItems = mItems;
notifyDataSetChanged();
}
public void removePositions(Collection<Integer> positions) {
ArrayList<Integer> positionsList = new ArrayList<Integer>(positions);
Collections.sort(positionsList);
Collections.reverse(positionsList);
for (int position : positionsList) {
mItems.remove(position);
}
notifyDataSetChanged();
}
public void removeAll(Collection<T> items) {
mItems.removeAll(items);
notifyDataSetChanged();
}
/**
* refresh
* */
public void refresh() {
this.notifyDataSetChanged();
}
}