1 package org.coolreader.crengine; 2 3 import java.util.ArrayList; 4 5 import android.database.DataSetObserver; 6 import android.widget.BaseAdapter; 7 8 public abstract class BaseListAdapter extends BaseAdapter { 9 private ArrayList<DataSetObserver> observers = new ArrayList<DataSetObserver>(); 10 registerDataSetObserver(DataSetObserver observer)11 public void registerDataSetObserver(DataSetObserver observer) { 12 observers.add(observer); 13 } 14 unregisterDataSetObserver(DataSetObserver observer)15 public void unregisterDataSetObserver(DataSetObserver observer) { 16 observers.remove(observer); 17 } 18 notifyDataSetChanged()19 public void notifyDataSetChanged() { 20 for (DataSetObserver observer : observers) { 21 observer.onChanged(); 22 } 23 } 24 notifyInvalidated()25 public void notifyInvalidated() { 26 for (DataSetObserver observer : observers) { 27 observer.onChanged(); 28 //observer.onInvalidated(); 29 } 30 } 31 32 33 // default behavior implementation: single item view type, all items enabled, ids == positions 34 35 @Override isEmpty()36 public boolean isEmpty() { 37 return getCount() > 0; 38 } 39 40 @Override areAllItemsEnabled()41 public boolean areAllItemsEnabled() { 42 return true; 43 } 44 45 @Override isEnabled(int position)46 public boolean isEnabled(int position) { 47 return true; 48 } 49 50 @Override getItemId(int position)51 public long getItemId(int position) { 52 return position; 53 } 54 55 @Override getItemViewType(int position)56 public int getItemViewType(int position) { 57 return 0; 58 } 59 60 @Override getViewTypeCount()61 public int getViewTypeCount() { 62 return 1; 63 } 64 65 @Override hasStableIds()66 public boolean hasStableIds() { 67 return true; 68 } 69 70 } 71