Notizen App problem

M

Matze02

Neues Mitglied
0
Hallo Liebe Comunity!

Ich bin momentan dabei, eine Notizenapp mit Hilfe eines Tutorials von YouTube zu programmieren. Nur Leider habe ich dass problem, dass der Ordner, in dem die Notizen gespeichert werden sollen sich nicht erstellt.
Ich würde mich über eine schnelle hilfe freuen.

Code:
import android.content.Intent;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class MainActivity extends AppCompatActivity {

    Button btn;
    Button btn2;
    EditText editText;
    File ordner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ordner = new File(Environment.getExternalStorageDirectory(),"Notizen_App");
        if(!ordner.exists()){
            ordner.mkdirs();
        }

        editText = (EditText)findViewById(R.id.editText);

        btn = (Button)findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(editText.getText().length()>0){

                    File notizdatei = new File(ordner, "Text-"+System.currentTimeMillis()+".txt");
                    try {
                        OutputStream outputStream = new FileOutputStream(notizdatei);
                        outputStream.write(editText.getText().toString().getBytes());
                        outputStream.close();
                        editText.setText(null);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                } else {
                    Toast.makeText(getApplicationContext(),"Kein Text",Toast.LENGTH_SHORT).show();
                }

            }
        });

        btn2 = (Button)findViewById(R.id.button2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                startActivity(new Intent(MainActivity.this, Notizen.class));

            }
        });

    }
}

Matze02
 
Hallo Matze,

unter was programmierst du denn ?
Emulator ? Device per ADB/USB ?

a) Sprich : WO wird dein Ordner nicht erstellt ?
b) Was sagt denn dein ErrorLOg in AS ?
c) hast du auch die Permissions in der Manifest gesetzt ?
 
Zuletzt bearbeitet:
@swa00
Ich programmiere In Java, falls du das mit "unter was programmierst du denn?" meinst.
Es ist egal, ob ich die App als .apk auf meine Handy ausführe, oder im Emulator. Es geht beides nicht.

Der ordner sollte eigentlich auf der SD-karte vom Handy erstellt werden, das tut er aber nicht.
Und der ErrorLog, der Sagt garnichts. Seiner Meinung nach gibt es keinen Fehler.

Permission sind in der AndroidMainfest.xml
Code:
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
Hallo Matze,

Klar dass es unter Java ist , aber ich wollte von Dir wissen , ob Du deine Entwicklung im Debug modus im Emulator
ausführst, oder an einen Device , dass mit USB an ADB hängt.

a) Doch, da wird es mit 100%ger Sicherheit einen ErrorLog geben - das ist Standard.
b) Welches ist dein Ziel Device System ? Marshmellow ? Wenn ja , hast du auch die Berechtigung erst mal manuell vergeben ??



Wenn du was von meinen Fragen nicht verstehst , dann bitte Meldung , ich weis deinen Stand nicht
 
@swa00
Ich habe es im Emulator und an meine Handy ausprobiert. es geht beides nicht. Das ich das Handy über USB Debuge, probier ich gerade noch aus.

Ich habe auf meinem Handy Android 4.4 (KitKat)

Nochmal zur Manifest:
da steht folgendes drinne:
Code:
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
Zuletzt bearbeitet:
Na jetzt kommen wir schon mal weiter.

a) Füge mal bitte
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
hinzu

Dann kann es sehr gut sein , dass dein Smartphone bei getExternalStorageDirectory() kein gültiges Directory zurückgibt.

Je nach Betriebsversion und Hardware sind diese auch unterschiedlich.
Ergo , man kann sich nie darauf verlassen , dass das stimmt.
Um das abzufangen ,muss man aufwendige Klassen benutzen, die dann was Gültiges auslesen.

Hier mal die Standard - Proceduren - die wie gesagt NICHT immer funktionieren müssen
Environment | Android Developers





.
 
Zuletzt bearbeitet:

Ähnliche Themen

B
Antworten
4
Aufrufe
406
bb321
B
FabianDev
Antworten
5
Aufrufe
515
swa00
swa00
D
Antworten
23
Aufrufe
2.312
Data2006
D
Zurück
Oben Unten