EditText Eingabe spiechern

  • Antworten:15
  • Bentwortet
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 20:49:37 via Website

Hallo, ich bin gerade dabei eine App zu programmieren und ich habe seit längerem ein Problem:
Ich würde gerne die Eingabe eines Textfeldes auf dem Handy abspeichern und später auch wieder auslesen können.
Würde mich freuen, wenn ich ein paar antworten bekommen würde (am besten abspeichern und auslesen getrennt) :) Danke im vorraus :D

Antworten
Andy N.
  • Forum-Beiträge: 22.375

05.07.2014, 21:16:16 via Website

Hallo Aron,

Ich habe deinen Thread mal rüber in unseren Entwickler-Bereich verschoben. ;)

Viele Grüße,
Andy


OnePlus 3 (Resurrection Remix 5.8.2)
LG G Watch

Regeln | unsere Mods & Admins

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 21:40:20 via Website

Sorry, aber das klappt bei mir irgendwie nicht richtig :( ich bräuchte ja nur ein einziges Textfeld und wenn ich dann einen Button anklicke sollte der Text aus diesem TextFeld gespeichert werden:) Bitte um erneute Antwort

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2014, 22:16:47 via Website

Warum denn nicht?

//speichern
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor spe1 = prefs.edit();
                      spe1.putString("Textfeld", editText1.getText().toString());
              spe1.commit();



//lesen
String txt = prefs.getString("Textfeld","");

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 22:29:28 via Website

Vielen Dank Pascal, kann ich denn das Speichern als Methode einfach nach einem Buttonklick ausführen und wo wird dieser String dann gespeichert??

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2014, 22:32:47 via Website

Der String wird in den Sogenannten Shared Preferences gespeichert, genau betrachtet ist es eine XML Datei im inneren von Android.
Das ausleden hab ich dir ja auch schon gezeigt.
Also für normale Strings sollte dies reichen.
Falls du mehr brauchst könntest du auch noch eine SQLite DB anlegen

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 22:45:46 via Website

Okay vielen Dank, deine Antworten sind echt sehr konstruktiv :)
Noch etwas, bei mir wird zum einen Context rot unterstrichen und zum anderen das editText 1 in dieser Zeile spe1.putString("Textfeld", editText1.getText().toString()); obwohl ich das editText vorher schon importiert habe :( Vielen vielen Dank schon im vorraus und wie kann ich mir den ausgelesenen String im TextFeld anzeigen lassen :)

— geändert am 05.07.2014, 22:52:07

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2014, 22:49:43 via Website

Aber lerne die GRUNDLAGEN!!!
Wenn der Code in einer Activity ist, dann muss das so sein:

 PreferenceManager.getDefaultSharedPreferences(this);
//Und das Edit Text musst du auf deinem Layout suchen
EditText editText1 = (ExitText)findViewById(R.id.deineEditTextId)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 23:00:04 via Website

das ist ja gerade das Problem mit dem EditText, ich hatte es und habe es genauso wie du es in deinem Thread gepostet hast, aber es funktioniert einfach nicht :( Danke für deine Hilfe :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2014, 23:08:39 via Website

Ja wie sieht denn dein XML Layout aus.
Gibt es da einen Eintag für das EditText?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 23:12:40 via Website

Mir fehlte ein kleines Stück Code (private EditTtext editText1; ), aber ich bekomme es einfach nicht hin, dass ich das ausgelesene dann in ein Textfeld bekomme, könntest du mir da bitte, bitte nochmal helfen ?? Vieeeelen Dank schonmal :D

— geändert am 05.07.2014, 23:12:53

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2014, 23:16:42 via Website

Hast du jetzt dein XML Layout gecheckt, ob da ein EditText drauf ist.
Das einfach so im Code zu Definieren macht wenig sinn, da du darauf ja nichts einragen kannst,
du musst das textedit aus deinem Layout holen.
Für das schreiben in ein Textfeld musst du im Layout eine TextView anlegen, diese TextView musst du dann per Code auf dem Layout suceh und per setText kannst du dann den Test reinschreiben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Aron Brast

Antworten
Aron Brast
  • Forum-Beiträge: 92

05.07.2014, 23:29:10 via Website

ja ich habe das TextEdit im Layout gespeichert, es funktioniert jetzt auch soweit :) Wenn ich setText benutze, ist es dann so richtig ?
textView.setText("@string/Textfeld" ) ; ? und beim auslesen des Textes wird bei prefs.getString("Textfeld","" ); prefs unterstrichen, obwohl es darüber beim speichern nicht unterstrichen wird, weißt du vielleicht warum das so ist ? :) Danke, dass du mir hilfst :D

— geändert am 05.07.2014, 23:34:27

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.07.2014, 00:41:47 via App

Schau dir halt mal dei Meldung an warum es unterstrichen wird.
Die Variable Prefs ist wohl in der lesen methode nicht mehr activ.
Ergo sie muss neu definiert werden.

Ps set Text immer mit einem String verwenden da bringt der verwis aufs edittext feld nichts.
Wenn dwnn must du im textview setText ein edittext.gettext machen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Aron Brast
  • Forum-Beiträge: 92

06.07.2014, 12:26:03 via Website

Vielen Dank, du hast mir echt sehr weitergeholfen :D

Antworten