各月のヘッダー (月) と画像を持つグリッド ビューを実装しています。基本アダプターを実装しようとしていますが、うまくいかないようです。
GridView stickyGrid = (GridView) findViewById(R.id.show_gridview);
GridViewAdapter adapter = new GridViewAdapter(getBaseContext());
stickyGrid.setAdapter(adapter);
基本アダプターの実装
public class GridViewAdapter extends BaseAdapter implements
StickyGridHeadersBaseAdapter {
private LayoutInflater inflater;
public GridViewAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
imageUrls.size();
return 0;
}
@Override
public Object getItem(int position) {
return imageUrls.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView holder;
if (convertView == null) {
holder = (ImageView) inflater.inflate(R.layout.item_grid,
parent, false);
} else {
holder = (ImageView) convertView;
}
imageLoader.displayImage(Util.BASE_URL + imageUrls.get(position),
holder, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
spinner.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
String message = null;
switch (failReason.getType()) {
case IO_ERROR:
message = "Input/Output error";
break;
case DECODING_ERROR:
message = "Image can't be decoded";
break;
case NETWORK_DENIED:
message = "Downloads are denied";
break;
case OUT_OF_MEMORY:
message = "Out Of Memory error";
break;
case UNKNOWN:
message = "Unknown error";
break;
}
Toast.makeText(getBaseContext(), message,
Toast.LENGTH_SHORT).show();
spinner.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
spinner.setVisibility(View.GONE);
}
});
return holder;
}
@Override
public int getCountForHeader(int arg0) {
return datesHeader.size();
}
@Override
public View getHeaderView(int position, View convertView,
ViewGroup parent) {
TextView holder;
if (convertView == null) {
holder = (TextView) inflater.inflate(R.layout.date_header,
parent, false);
} else {
holder = (TextView) convertView;
}
holder.setText(datesHeader.get(position));
return holder;
}
@Override
public int getNumHeaders() {
// TODO Auto-generated method stub
return 0;
}
}
まず第一に、私が抱えている問題は、それらのいずれに対しても getView を実行しないことです (シンプルおよびヘッダー)。次に頭に浮かぶのは、特定の画像にヘッダーを設定するにはどうすればよいかということです。画像の URL の配列リストと、ヘッダー (月) 用の配列リストがあります。私はすでに4日間費やして解決策を見つけることができなかったので、私を助けてください.