【发布时间】:2016-12-11 13:36:59
【问题描述】:
我正在使用 GridView 适配器来显示图像(在 R.drawable 中)和图像下的文本描述(这两件事都在数组列表中的 strings.xml 文件中编码)。单击特定图像时,我想在新活动中显示图像和文本。
通过 SO,我发现由于图像大小,最好使用 int 而不是 bitmap 图像,但我遇到了适配器问题......
行:“holder.image.setImageResource(imgs.getResourceId(0, -1));”如下所示在 logcat 中给我一个错误。
有什么建议吗?
GridViewAdapter 代码:
public GridViewAdapter(Context context, int layoutResourceId, ArrayList<ImageItem> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageTitle = (TextView) row.findViewById(R.id.text);
holder.image = (ImageView) row.findViewById(R.id.image);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
ImageItem item = data.get(position);
holder.imageTitle.setText(item.getTitle());
// problem code >>> holder.image.setImageResource(imgs.getResourceId(0, -1));
return row;
}
static class ViewHolder {
TextView imageTitle;
ImageView image;
}
【问题讨论】:
-
你遇到了什么错误?
-
Logcat 说“FATAL EXCEPTION: main java.lang.NullPointerException”,然后指向我所说的那行代码 (GridViewAdapter.getView) 会出现问题。应用在启动时崩溃。
标签: android gridview textview imageview