位图不出现在ListView中

时间:2012-04-02 20:37:20

标签: android android-listview imageview

我正在尝试显示列表视图,其中包含先前从互联网上下载的图片以及一些信息。文本信息显示很好,但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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

我做错了什么?

ImageView showcase未连接到列表项视图。您应该在列表项视图中找到该视图,例如:

ImageView showcase = (ImageView) row.findViewById(R.id.my_icon);