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 に答える