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
APK datei öffnen? Android App Entwicklung 10.11.2018
Eigene App auf Smartwatch installieren klappt nicht Android App Entwicklung 08.11.2018
In App Käufe programmieren Android App Entwicklung 04.11.2018
mindest API ist 26?! Android App Entwicklung 01.11.2018
Android App - Objekt bewegt sich nach Handyneigung Android App Entwicklung 30.10.2018
Wie float wert von android App an desktop Applikation per Bluetooth senden? Android App Entwicklung 29.10.2018
Neigungssensor ansprechen und wert ausgeben in App Android App Entwicklung 14.10.2018
MIT AppInventor App erstellen um PDFs zu öffnen, problem Android App Entwicklung 10.10.2018
Kosten/ Aufwand für ne Android App für Vereinsaufgaben? Android App Entwicklung 08.10.2018
Welches Tut/Buch/... für meine App-Idee? Android App Entwicklung 01.10.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.