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 Fortgeschrittenes 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
App startet nicht - Wie, die Ursache finden? Android App Entwicklung Dienstag um 16:56 Uhr
Wert beim Start der App aus SharedPreferences auslesen Android App Entwicklung 10.09.2018
Datenschutzerklärung bei eigener App (ohne Erhebung von Daten) Android App Entwicklung 30.08.2018
Wie viele Klassen und Layouts brauche ich für meine App? Android App Entwicklung 05.08.2018
Android Studio - App stürtzt immer ab Android App Entwicklung 24.06.2018
Bluetooth LE mit MIT App Inventor 2 Android App Entwicklung 15.06.2018
Daten für eine Stundenplan-App Android App Entwicklung 23.05.2018
App wird nach start sofort beendet! Android App Entwicklung 21.05.2018
Service stoppt wenn App geschlossen wird Android App Entwicklung 16.05.2018
Fehler beim Download bestimmter Webseiten mit httpGet Android App Entwicklung 19.04.2018
Du betrachtest das Thema "Warum Stürtzt meine App ab? (Beim Öffnen von content_3)" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.