Сортировать данные, поступающие из памяти телефона, в алфавитном формате?

Я новичок в Android. Я пытаюсь получить аудиофайлы из хранилища и поместить их в режим повторного использования. И он отлично загружается, но я не знаю, как мне отсортировать весь этот список в алфавитном порядке этого имени файла. . Я пробовал несколько способов, но это не сработало. Пожалуйста, помогите мне решить эту проблему. Спасибо.

Это файл My Java: Recycler_MusicPlayer.java:

 public class Recycler_MusicPlayer extends Recycler_Music_Player_onclick {
        // private RecyclerView recyclerView;
        Adapter adapter;
        Cursor musiccursor;
        int music_column_index;
        int count;
        FastScrollRecyclerView recyclerView;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.recycler__music_player);
            setTitle("List of Songs");
            recyclerView = (FastScrollRecyclerView) findViewById(R.id.recycler);
            recyclerView.setLayoutManager(new LinearLayoutManager(this));

            System.gc();
            String[] proj = {MediaStore.Audio.Media._ID,
                    MediaStore.Audio.Media.DATA,
                    MediaStore.Audio.Media.DISPLAY_NAME,
                    MediaStore.Video.Media.SIZE};
            musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    proj, null, null, null);
            count = musiccursor.getCount();
            adapter = new Adapter(this);
            recyclerView.setAdapter(adapter);

        }


        public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {

            private Context mContext;
            private LayoutInflater inflater;

            public Adapter(Recycler_MusicPlayer recycler_musicPlayer) {
                inflater = LayoutInflater.from(recycler_musicPlayer);
                mContext = recycler_musicPlayer;
            }

            @Override
            public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = inflater.inflate(R.layout.song_layout, parent, false);
                return new MyViewHolder(view);

            }

            @Override
            public void onBindViewHolder(MyViewHolder holder, int position) {
                System.gc();
                String id = null;
                music_column_index = musiccursor
                        .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
                musiccursor.moveToPosition(position);
                id = musiccursor.getString(music_column_index);
                music_column_index = musiccursor
                        .getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE);
                musiccursor.moveToPosition(position);
                id += " Size(KB):" + musiccursor.getString(music_column_index);
                holder.song.setText(id);
            }

            @Override
            public int getItemCount() {
                return count;
            }

            public class MyViewHolder extends RecyclerView.ViewHolder {
                TextView song;
                ImageView play;

                public MyViewHolder(View itemView) {
                    super(itemView);
                    song = (TextView) itemView.findViewById(R.id.song);
                    play = (ImageView) itemView.findViewById(R.id.play);
                    itemView.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            if (mMediaPlayer.isPlaying()) {
                                Log.e("zzzzzzzzzzzz", "is playingggg");
                                mMediaPlayer.pause();
                                pause = 0;
                            }
                            Log.e("ddddddddddd", "after set play on click");
                            int pos = getAdapterPosition();
                            startActivity(new Intent(v.getContext(), Recycler_Music_Player_onclick.class)
                                    .putExtra("pos", pos));
                        }


                    });
                }
            }
        }

    }

person user8209191    schedule 12.08.2017    source источник
comment
В какой переменной вы храните имена музыкальных файлов?   -  person    schedule 12.08.2017
comment
Возможный дубликат Порядок сортировки в списке Android из Mediastore   -  person Anton Potapov    schedule 12.08.2017
comment
Я не сохранил. Я сохранил весь массив данных в массиве. Нижеприведенный ответ сработал. Спасибо.   -  person user8209191    schedule 12.08.2017


Ответы (1)


Вам нужно отсортировать запись в управлении запросом, попробуйте ниже изменения

Вы можете управлять порядком в порядке возрастания убывания

По возрастанию

String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME+ " ASC";

По убыванию

String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME+ " DESC";

Изменение в запросе управления

musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, sortOrder);
person akhilesh0707    schedule 12.08.2017