Ordnerinhalt auslesen

ronny130286

ronny130286

Fortgeschrittenes Mitglied
24
Hallo

ich möchte meinen Ordnerinhalt Auslesen dazu nutze ich folgenden Code:

Code:
                File sd = Environment.getExternalStorageDirectory();
                final File file = new File(sd, getString(R.string.app_name) + "/");
                if (file.length() > 0) {

                    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    ArrayAdapter arrayAdapter = new ArrayAdapter(getActivity().getApplicationContext(),R.layout.simple_spinner_item,file.list());

                    ListView listViewItems = new ListView(getActivity().getApplicationContext());
                    listViewItems.setAdapter(arrayAdapter);

                    builder.setView(listViewItems)
                            .setTitle(R.string.title_backup_preference)
                            .setMessage(R.string.str_dialog_prefernce_message)
                            .setNegativeButton(R.string.str_dialog_negativebutton, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                }
                            });


                    final AlertDialog alertDialog = builder.create();
                    alertDialog.setCanceledOnTouchOutside(true);

                    alertDialog.show();

listViewItems.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
                            Toast.makeText(getActivity(), "Kurz " + file.listFiles()[position], Toast.LENGTH_SHORT).show();

                            alertDialog.dismiss();

                        }
                    });
listViewItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                        @Override
                        public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {

                            Toast.makeText(getActivity(), "Lang " + file.listFiles()[position], Toast.LENGTH_SHORT).show();
                            
                            alertDialog.dismiss();

                            return false;

                        }
                    });hinzugefügt

Soweit funktioniert auch alles, nur ein Problem habe ich => meine Dateien im Ordner beginnen alle mit yyyy.MM.dd_HH:mm:ss, damit immer das neuste Datum unten steht und ich mir das sortieren sparen kann (dachte ich), mache ich aber den Dialog auf, steht das aller letzte File (vom Datum her) in der Liste als erstes drin und im Anschluss ist die Reihenfolge korrekt, wieso passiert das?
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    34,7 KB · Aufrufe: 247
File.list() liefert nunmal keine deterministische Reihenfolge.
Die müsstest du schon (z.B. mit Arrays.sort()) selber sortieren.
 
okay, man lernt nicht aus, dachte wenn ich das schon vom Datum(Benennung) der Datei her in Reihenfolge bringe, aber gut zu wissen..

habe jetzt die Liste noch sortiert mit

Code:
String file_list = file.list();
Arrays.sort(file_list);

und habe den in den Adapter die file_list übergeben
 

Ähnliche Themen

H
Antworten
2
Aufrufe
1.321
Hcman
H
M
  • maksimilian
Antworten
8
Aufrufe
1.274
jogimuc
J
V
Antworten
2
Aufrufe
936
Vultan
V
Zurück
Oben Unten