0

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

//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) String[] 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。

4

2 回答 2

0

听起来您想将文件按数字顺序排序……而不是词法顺序。

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

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

这个逻辑需要在你提供参数的compare方法中实现。Comparatorsort

于 2013-05-17T09:09:19.860 回答
0

使用Arrays.sort(T[] a, Comparator c)

这是一个示例http://www.coderanch.com/t/378718/java/java/sort-array-files-directories

于 2013-05-17T08:38:35.223 回答