1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. javacoder, 27.02.2018 #1
    javacoder

    javacoder Threadstarter Neuer Benutzer

    Hallo.

    Ich bin neu hier und befasse mich auch erst seit 4 Tagen mit Java / Android.

    Ich versuche gerade eine kleine App zu erstellen, die mir anzeigen soll wieviele Notitz Dateien im Verzeichnis "Notizen" sind. (Notiz.1, Notiz.2 ....)

    Hier mal der Code dieser Funktion:

    Code:
    public ArrayList<String> GetFiles(String DirectoryPath) {
            ArrayList<String> MyFiles = new ArrayList<String>();
            File f = new File(DirectoryPath);
    
            f.mkdirs();
            File[] files = f.listFiles();
            if (files.length == 0)
                return null;
            else {
                for (int i=0; i<files.length; i++)
                    MyFiles.add(files[i].getName());
            }
    
            return MyFiles;
        }
    
    
    
    
    
    public void page3open (View view) {
            setContentView(R.layout.content_home3);
            ordner = new File(Environment.getExternalStorageDirectory(), "Notiz");
            if(ordner.exists()) {
    
                ArrayList<String> FilesInFolder = GetFiles(Environment.getExternalStorageDirectory() + "Notiz");
                ListView lv;
                lv = (ListView)findViewById(R.id.ListView31);
    
                lv.setAdapter(new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, FilesInFolder));
    
                lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                        // Clicking on items
                    }
                });
    
            } else {
    
                final TextView textViewToChange = (TextView) findViewById(R.id.textView31);
                textViewToChange.setText("Keine Notiz gefunden.");
            }
    
    
        }


    Wenn keine Notiz im Ordner liegt, zeigt mir die App das an, wenn jedoch eine Datei im Ordner liegt, stürtzt Sie ab anstatt die Datei(en) im Listview31 anzuzeigen...


    Kann mir ja jemand weiter helfen? Ich tüftle schon 2 Stunden :D
     
  2. Kardroid, 27.02.2018 #2
    Kardroid

    Kardroid Android-Experte

    Hallo javacoder,

    auch wenn ich dir nicht ganz im Kontext helfen kann, möchte ich dir paar Tipps geben.
    1. Dein setContentView in der Methode page3open sieht so aus, als ob du die Android Architektur nicht befolgst. Schau dir nochmal am besten die Beziehung zwischen Activities an.
    2. Wenn deine App abstürzt ist es zu 95% eine NullPointerException und diese wird auch im Logcat angezeigt.

    P.S.: vielleicht fehlt dir nen "/" in der zweiten Zeile in der Methode "page3open".
     
    lordzwieback bedankt sich.
  3. swa00, 27.02.2018 #3
    swa00

    swa00 Moderator Team-Mitglied

    Und auch hier gilt :

    Wir können Dir nur effektiv helfen , wenn du uns den ErrorLog und den dazugehörigen Quellcode lieferst.
    [LEITFADEN] Wie bekomme ich hier die effektivste Hilfe ?

    Ansonsten ist den Ausführungen von Kardroid nichts mehr hinzuzufügen.
    Beherzige am besten erst mal seine "Einwände" :)
     
    Zuletzt bearbeitet: 27.02.2018
  4. lordzwieback, 27.02.2018 #4
    lordzwieback

    lordzwieback Moderator Team-Mitglied

    Das kann ich so bestätigen, der Fehler hatte sich bei mir auch mal eingeschlichen. Der Befehl
    Environment.getExternalStorageDirectory() alleine liefert dir das Ergebnis ohne das abschließende "/". Wie das beim Aufruf über new File läuft, kann ich gerade nicht genau sagen.

    Bzw wieso nutzt du im Aufruf deiner getFiles Methode nicht deine "ordner"-Variable, die du ein paar Zeilen obendrüber setzt? Ich glaube, dass er den Pfad im Befehl ordner = New File.... richtig setzt und auch in die if-Abfrage reinspringt, in welcher du prüfst, ob dein Pfad vorhanden ist. Aber beim Aufruf der getFiles-Methode setzt du den Pfad nochmal neu als Parameter ohne das "/". Optional kannst du auch einfach folgendes testen:
    Code:
    ArrayList<String> FilesInFolder = GetFiles(Environment.getExternalStorageDirectory() + "/Notiz");
    
    Nichtsdestotrotz wären die Meldungen vom Crash aus dem logcat hilfreich. ;)
     
    Zuletzt bearbeitet: 27.02.2018
    swa00 bedankt sich.
  5. markus.tullius, 01.03.2018 #5
    markus.tullius

    markus.tullius Android-Lexikon

    Hallo javacoder,

    der Fehler mit großer Wahrscheinlichkeit liegt in der Zeile setContentView(R.layout.content_home3);

    Du übergibst in der Methode ein View, daher vermute ich, dass du schon vorher setContentView aufgerufen hast. Damit hat das Layout deiner Activity schon ein root view. Diesen kannst du nachträglich nicht mehr überschreiben. Jeder Versuch führt zu einen Absturz der App.

    Entweder benutzt du ein Adapter, oder ein LayoutInflater.

    @Kardroid sehe gerade, das du den gleiche Tipp gegeben hast. Sorry.
     
    Zuletzt bearbeitet: 01.03.2018
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Service stoppt wenn App geschlossen wird Android App Entwicklung Mittwoch um 18:50 Uhr
Fehler beim Download bestimmter Webseiten mit httpGet Android App Entwicklung 19.04.2018
Daten von Android Wear zur Handy-App senden geht nicht Android App Entwicklung 03.04.2018
In App Billing Android App Entwicklung 11.03.2018
Benötigte Zugriff ausschalten Android App Entwicklung 07.03.2018
App-Aktualisierungen richtig testen und an den User bringen. Android App Entwicklung 03.03.2018
Data Message von Firebase an die App senden Android App Entwicklung 18.02.2018
Eigene Web DB für App Inventor Android App Entwicklung 10.02.2018
Telefon-App Nummerntöne Android App Entwicklung 06.02.2018
Login merken und activities öffnen - shared preferences Android App Entwicklung 28.01.2018
Du betrachtest das Thema "Warum Stürtzt meine App ab? (Beim Öffnen von content_3)" im Forum "Android App Entwicklung",
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deinem Erleben anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.