как отсортировать массивы / список и вернуть результат в Android? - PullRequest
0 голосов
/ 31 января 2012

Я использую расширяемый список для отображения папок и файлов, которые есть в моем приложении. Однако из-за моего приложения, позволяющего пользователю добавлять файлы, список будет перемешан. Итак, я намерен установить отсортированный список (по именам) в качестве моего дочернего списка.

Я знаю, что есть Arrays.sort и Collections.sort, но оба метода являются недействительными, а не возвращают список.

Так как мне это сделать?

Мой список:

    private File recordImageFolder = new File (Environment.getExternalStorageDirectory(),"/Record/Image");
    private File recordSoundFolder = new File (Environment.getExternalStorageDirectory(),"/Record/Sound");

    private String[] groups = { "Image", "Sound" };
    private String[][] children = { recordImageFolder.list(), recordSoundFolder.list() };

1 Ответ

0 голосов
/ 31 января 2012

Вместо инициализации этих элементов поля в их объявлениях вы можете инициализировать их в конструкторе или методе init, что позволяет использовать Arrays.sort(Object[]):

private File recordImageFolder;
private File recordSoundFolder;

private String[] groups;
private String[][] children;

public MyClass() {

    recordImageFolder = new File (Environment.getExternalStorageDirectory(),"/Record/Image");
    recordSoundFolder = new File (Environment.getExternalStorageDirectory(),"/Record/Sound");

    String[] recordImages = recordImageFolder.list();
    String[] recordSounds = recordSoundFolder.list();

    Arrays.sort(recordImages);
    Arrays.sort(recordSounds);

    groups = new String[] { "Image", "Sound" };
    children = new String[][] { recordImages, recordSounds };
}
...