Народ -
Я пытаюсь реализовать виджет Галерея, который отображает ArrayList изображений, и я начал с Hello, пример галереи на сайте разработчика. Эта часть отлично работает.
Мне нужно, чтобы галерея отображала пустой вид (особый вид, когда у ArrayList нет содержимого), но я не могу заставить галерею сделать это. Я делал это с ListView и другими AdapterViews в прошлом, но я не могу заставить его работать с Gallery. Что мне нужно переопределить / реализовать в Адаптере, Галерее или в обоих, чтобы отобразить пустой вид? Это мой код адаптера:
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private ArrayList<Drawable> images;
public ImageAdapter(Context c) {
mContext = c;
TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1);
mGalleryItemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);
a.recycle();
images = new ArrayList<Drawable>();
}
public void addImage(Drawable d) {
images.add(d);
}
public boolean isEmpty() {
return getCount() == 0;
}
public int getCount() {
return images.size();
}
public Drawable getItem(int position) {
return images.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View contentView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageDrawable(images.get(position));
i.setLayoutParams(new Gallery.LayoutParams(160, 120));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
}
Когда представление должно отображаться с пустым ArrayList, getCount () действительно вызывается (возвращая 0), но Галерея никогда не проверяет isEmpty, и когда я определил getEmptyView()
в Галерее, он также никогда не вызывался. , Я пропустил другой обязательный метод в BaseAdapter, чтобы правильно уведомить о пустом состоянии?
Спасибо!