
lordzwieback
Erfahrenes Mitglied
- 210
Hallo,
ich bin neu in der Welt der App Programmierung und wollte nun meine erste kleine "App" schreiben. Auf der Activity sitzen ein Button und ein TextView. Der Button soll die Textdatei öffnen und den Inhalt in das TextView übernehmen.
Hier der Code:
Zum Problem:
Lasse ich mir per System.out.println("File vorhanden") nach if(file.exists() ausgeben, funktioniert das. Das heißt für mich, dass er die Datei auf der SD findet.
Nur leider wird kein Text in den StringBuider "text" übergeben. Wenn ich mir "line" bzw. "text" per System.out.println() anzeigen lassen möchte, ist nichts drin. Im TextView erscheint dementsprechend auch nichts. Leider kann ich den Fehler nicht finden. Mehrere Tutorials schlagen mir aber diesen Code vor.
Was ich noch probiert habe, ist die Permission fürs Lesen von externen Speichermedien zu setzen:
Das hat aber auch nichts geholfen.
Hoffe, man kann mir weiterhelfen
Gruß,
lordzwieback
ich bin neu in der Welt der App Programmierung und wollte nun meine erste kleine "App" schreiben. Auf der Activity sitzen ein Button und ein TextView. Der Button soll die Textdatei öffnen und den Inhalt in das TextView übernehmen.
Hier der Code:
Code:
package com.example.rling.stark_inspektion;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
public class MainActivity extends AppCompatActivity {
private Button importButton;
private TextView filetext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
importButton = (Button) findViewById(R.id.import_button);
filetext = (TextView) findViewById(R.id.textView);
importButton.setText(R.string.import_button);
importButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, "/Download/testfile.txt");
if(file.exists()) {
//filetext.setText("File exists\n");
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null) {
text.append(line);
text.append("\n");
System.out.println(line);
}
}catch (Exception e) {
}
System.out.println(text);
filetext.setText(text);
} else {
filetext.setText("File not found.");
}
}
});
}
}
Zum Problem:
Lasse ich mir per System.out.println("File vorhanden") nach if(file.exists() ausgeben, funktioniert das. Das heißt für mich, dass er die Datei auf der SD findet.
Nur leider wird kein Text in den StringBuider "text" übergeben. Wenn ich mir "line" bzw. "text" per System.out.println() anzeigen lassen möchte, ist nichts drin. Im TextView erscheint dementsprechend auch nichts. Leider kann ich den Fehler nicht finden. Mehrere Tutorials schlagen mir aber diesen Code vor.
Was ich noch probiert habe, ist die Permission fürs Lesen von externen Speichermedien zu setzen:
Code:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
Das hat aber auch nichts geholfen.
Hoffe, man kann mir weiterhelfen
Gruß,
lordzwieback