public class FileBaseAdapter extends BaseAdapter {

private static final int TXT_FILE = 1;  
    private static final int IMAGE_FILE = 2;  
    private static final int AUDIO_FILE = 3;  
    private static final int VIDEO_FILE = 4;  
    private static final int OTHER_FILE = 5;  
    private static final int FOLDER = 6;  
    
private List<FileVO> list = new ArrayList<FileVO>();
private Context context;
private int resource;

public FileBaseAdapter(Context context, int resource, File[] filearray)
{
this.context = context;
this.resource = resource;

String name;
String path;
int icon;

for (int i = 0; i < filearray.length; i++) {  
        name = filearray[i].getName();
        path = filearray[i].getAbsolutePath();
        icon = getIcon(filearray[i]);
           
        FileVO filevo = new FileVO(name,path,icon);
        list.add(filevo); 
    }

System.out.println("FileBaseAdapter............");
}

@Override
public int getCount() {
// TODO Auto-generated method stub
System.out.println("getCount............."+list.size());
return list.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
System.out.println("getItem.............."+position);
return list.get(position);
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
System.out.println("getItemId............"+position);
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub

System.out.println("position:"+position); FileVO filevo = (FileVO)list.get(position);

String name = filevo.getFileName();
String path = filevo.getFilePath();
int icon = filevo.getFileIcon();

LayoutInflater layoutInflater = LayoutInflater.from(context);
View view = (View)layoutInflater.inflate(resource, null);

TextView fileName = (TextView)view.findViewById(R.id.filename);
ImageView fileImage = (ImageView)view.findViewById(R.id.fileImage);

fileName.setText(name);
fileImage.setImageResource(icon);

System.out.println("getView====="+name);

return view;
}

//根据File 获得后缀判断文件格式;
    private int getFileType(File file) {  
       
        if (file.mkdir()) {  
            return FOLDER;  
        }  
        String filename = file.getName();  
        final String[] txt = { ".txt", ".doc", ".pdf" };  
        final String[] img = { ".jpg", ".jpeg", ".png", "bmp", ".gif" };  
        final String[] audio = { ".mp3", ".wav" };  
        final String[] video = { ".avi", ".mp4", ".rm", ".rmvb", "mkv" };  
  
        for (int i = 0; i < txt.length; i++) {  
            if (filename.endsWith(txt[i]))  
                return TXT_FILE;  
        }  
        for (int i = 0; i < img.length; i++) {  
            if (filename.endsWith(img[i]))  
                return IMAGE_FILE;  
        }  
        for (int i = 0; i < audio.length; i++) {  
            if (filename.endsWith(audio[i]))  
                return AUDIO_FILE;  
        }  
        for (int i = 0; i < video.length; i++) {  
            if (filename.endsWith(video[i]))  
                return VIDEO_FILE;  
        }  
        return OTHER_FILE;  
  
    }  
    
    //根据文件格式得到相应的图片ID
    private int getIcon(File file) {  
        int type = getFileType(file);  
        switch (type) {  
        case TXT_FILE:  
            return R.drawable.text;  
        case IMAGE_FILE:  
            return R.drawable.icon;  
        case AUDIO_FILE:  
            return R.drawable.chm;  
        case VIDEO_FILE:  
            return R.drawable.ppt;  
        case FOLDER:  
            return R.drawable.folder;  
        case OTHER_FILE:  
            return R.drawable.word;  
        }  
        return 0;  
    }  }
getView中每次System.out.println("position:"+position); 都是同一个position
也显示不出来,为什么啊??新手请教!

解决方案 »

  1.   

    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    System.out.println("getCount............."+list.size());
    return list.size();
    }list 里面有内容吗? getView 会根据 getCount 得到的数量来生成view
      

  2.   

    SDCard里面有内容,我有做输出,数据都是正确的,但就是显示不出来。。
      

  3.   

    显示应该在activity中吧,看不太明白
      

  4.   

    问题解决了,是xml里的问题,谢谢各位!