Следующий код является типичным адаптер расширяет BaseAdapter для GalleryView/GridView и т.д .:Нужно ли нам реализовать все абстрактные методы в Android?
public class GalleryImageAdapter extends BaseAdapter
{
private Context mContext;
private Integer[] ImageIds = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3
};
public GalleryImageAdapter(Context context)
{
mContext = context;
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int index, View view, ViewGroup viewGroup)
{
// TODO Auto-generated method stub
ImageView i = new ImageView(mContext);
i.setImageResource(ImageIds[index]);
i.setLayoutParams(new Gallery.LayoutParams(200, 200));
i.setScaleType(ImageView.ScaleType.FIT_XY);
return i;
}
}
Если мы идем на сайт Android, developer.android.com, мы находим следующие абстрактные методы.
адаптер> BaseAdapter (подкласс адаптера)
abstract int getCount()
abstract Object getItem(int position)
abstract long getItemId(int position)
abstract int getItemViewType(int position)
abstract View getView(int position, View convertView, ViewGroup parent)
abstract int getViewTypeCount()
abstract boolean hasStableIds()
abstract boolean isEmpty()
abstract void registerDataSetObserver(DataSetObserver observer)
abstract void unregisterDataSetObserver(DataSetObserver observer)
Мой вопрос мы должны реализовать все вышеперечисленные абстрактные методы? В приведенном выше примере кода мы используем только getCount(), getItem(), getItemId и getView. Зачем?
зависит от вашего требования к приложению. –
Эти четыре метода полностью соответствуют нашим нормальным потребностям, поэтому мы переопределяем только эти 4. –
Что говорит о них andriod doc? Очевидно, зависит от требования –