我正在尝试显示列表视图,其中包含先前从互联网上下载的图片以及一些信息。文本信息显示很好,但imageview不是。我的代码是:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.w("MyApp", "Getting View");
View row = convertView;
if(row==null){
LayoutInflater inflater=getLayoutInflater();
row=inflater.inflate(R.layout.list_item, parent, false);
}
ImageView showcase = null;
try{
showcase = new ImageView(ReadingList.this);
}catch(Exception e){
Log.w("MyApp", e.toString());
}
if(showcase!=null){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
Bitmap bm = null;
File dir = new File(PATH + urlIDs[position]);
if(dir.isDirectory()){
Log.w("MyApp","Dir is a directory");
for (File child : dir.listFiles()) {
String path = child.getAbsolutePath();
Log.w("MyApp", path);
bm = BitmapFactory.decodeFile(path, options);
Log.w("MyApp", "See if bm is null");
if(bm!=null){
Log.w("MyApp", "bm!=null");
showcase.setImageBitmap(bm);
break;
}
}
}
}
TextView title =(TextView)row.findViewById(R.id.list_item_text);
TextView url = (TextView) row.findViewById(R.id.list_item_url);
title.setText(Titles[position]);
url.setText(urlPrefixes[position]);
return row;
}
}
对不起,此刻有点乱。我可以在logcat中看到,因为它在该文件夹中找到了一个图像,它通过了bm!=null
检查,并且应该将该图像设置为imageView的内容如果我没错的话。我甚至可以在logcat中看到它已经移动到下一个行项目,我可以使用eclipse文件管理器来查看实际上在child.getAbsolutePath
我做错了什么?
答案 0 :(得分:1)
我做错了什么?
ImageView showcase
未连接到列表项视图。您应该在列表项视图中找到该视图,例如:
ImageView showcase = (ImageView) row.findViewById(R.id.my_icon);