如何对assets文件夹中的文件进行排序?

时间:2013-05-17 08:31:27

标签: java android string sorting assets

这里面临着排序文件的问题。从文件夹资产中选择文件。如何按升序排序文件? 这是我的代码:

//fillGrid
private void fillGridAdapter(int cat) {
   ASSETS_IMAGE_DIR = imagePath[cat];
   addImages(getImages(imagePath[cat]));
}
//Adds the files
private void addImages(String[] temp){
   imBitmap = new Bitmap[temp.length];
   if(temp != null) {
   for(int i = 0; i < temp.length; i++){
       try {
    imBitmap[i] = getBitmapFromAsset(imagePath[g.getImageCat()]+"/"+temp[i]);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      }
    }
}
private String[] getImages(String f){
        try {
        AssetManager assetManager = getResources().getAssets();
        String[] temp = assetManager.list(f);

        Arrays.sort(temp);
        return temp;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
}

在assetManager.list(f)之后[] temp - (1.jpg,10.jpg,12.jpg ... 9.jpg)。在Arrays.sort(temp)之后 - (1.jpg,10.jpg,12.jpg ... 9.jpg)。我需要 - 1.jpg,2.jpg,3.jpg ... n.jpg。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

听起来你想要将文件按数字顺序排序......而不是词汇顺序。

要实现此目的,您需要将路径名拆分为数字和非数字段。对于数字段,您需要将段解析为整数并根据整数值进行排序。

看起来您的文件格式为<number>.<suffix>,因此拆分应该很简单。

此逻辑需要在compare的{​​{1}}方法中实施,并为Comparator提供参数。