【发布时间】:2013-12-24 12:58:10
【问题描述】:
我有一个问题,我的适配器的 getView 方法总是返回 0 作为索引。因此,我的 GridView 中只有一张图像显示了 2 次。所以,请提出任何解决方案。
代码:适配器
public class LibraryAdapter extends BaseAdapter{
Context _context;
ArrayList<String> listMags;
HashMap<String, ArrayList<String>> hashMap;
public LibraryAdapter(Context context, ArrayList<String> listMags, HashMap<String, ArrayList<String>> hashMap)
{
_context = context;
this.listMags = listMags;
this.hashMap = hashMap;
}
@Override
public int getCount()
{
return listMags.size();
}
@Override
public Object getItem(int arg0)
{
return listMags.get(arg0);
}
@Override
public long getItemId(int arg0)
{
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2)
{
ItemHolder itemHolder;
String magName = listMags.get(arg0);
if (arg1 == null)
{
LayoutInflater layoutInflaterObj = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
itemHolder = new ItemHolder();
arg1 = layoutInflaterObj.inflate(R.layout.library_grid_item, null);
itemHolder.imgMag = (ImageView) arg1.findViewById(R.id.imgIssuesGridItem);
itemHolder.tvMagName = (TextView) arg1.findViewById(R.id.tvIssuesDate);
arg1.setTag(itemHolder);
}
else
{
itemHolder = (ItemHolder) arg1.getTag();
}
Bitmap bmp = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/MAGZ/"+magName+"/"+hashMap.get(magName).get(0)+"/"+(hashMap.get(magName).get(0).replace(magName, ""))+arg0+".png");
//itemHolder.imgIssueItem.setImageUrl(getItem(position).getImage_path(), imageLoader);
itemHolder.imgMag.setImageBitmap(bmp);
itemHolder.tvMagName.setText((new File(Environment.getExternalStorageDirectory()+"/MAGZ/"+magName+"/"+hashMap.get(magName).get(0))).getName());
return arg1;
}
static class ItemHolder
{
ImageView imgMag;
TextView tvMagName;
}
}
提前致谢。
【问题讨论】:
-
在此处发布定义网格视图的 xml。
-
@Sanat Pandey 看看我的答案。
标签: android adapter baseadapter