Texte bearbeiten, Werte speichern -> ein paar Fragen

  • 5 Antworten
  • Letztes Antwortdatum
R

RobNeck

Ambitioniertes Mitglied
3
Hallo zusammen,

nachdem ich mir zig Tutorials reingezogen habe und schon meine erste simple App konstruiert habe, möchte ich nun langsam etwas anspruchsvollere Dinge machen. Ich dachte ich im sammle die Fragen, die nach und nach aufkommen, in diesem Thread.

Meine App kann derzeit auf Knopfdruck andere Activities aufrufen. Welche das ist, richtet sich jeweils nach der auswahl eines Wertes im Spinner in der Hauptactivity.

Nun zu dem, was ich machen möchte:

Bisher sind die Texte und Bilder in den aufgerufenen Unteractivities statisch. Die festen Strings möchte ich im ersten Schritt zu variablen Strings machen, die man bearbeiten kann. Also beim Klick auf einen TextView soll man diesen bearbeiten können.

Im zweiten Schritt soll der eingegebene Wert dann gespeichert werden und beim nächsten Start der App wieder zu sehen sein.

Ich sehe den Wald vor lauter Bäumen gerade aber nicht so richtig und könnte Tipps gebrauchen, wie ich das ganze am besten angehe.

Beim Klick auf den zu bearbeitenden TextView eine neue Activity, die nur einen EditText und einen Button enthält, der auf Knopfdruck den Wert des EditText an die TextView zurückgibt, die angeklickt wurde?

Und in welcher Form und wie speichere ich den Wert des bzw der TextViews am besten?

Wäre super, wenn ihr mir weiterhelfen könntet!
 
Es soll halt aussehen wie eine Art Steckbrief, also:

Angabe 1
Angabe 2
Angabe 3

Foto

Danke erstmal für die Tipps, werde ich mir gleich anschauen :)
 
Ich habe die sharedPreferences nun wie folgt implementiert. Eclipse zeigt mir im Editor keinen Fehler an und die Anwendung läuft auch. Abersobald ich mit dem "Zurück" Button die Activity verlasse, sind alle gesetzt Werte wieder weg.

Den "onButtonClick" habe ich in den XML implementiert. finish(); führt er auch wunderbar aus. Nur das Speichern (oder Laden) funktioniert eben nicht.

Wo liegt der Fehler?

Code:
package de.jensjensen.androidsuperfreunde;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;

public class FreundActivity extends Activity{

	EditText geb;
	EditText adresse;
	EditText heimat;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.freund_hanni);
		
		geb = (EditText) findViewById(R.id.edt_hanni_geb);
		adresse = (EditText) findViewById(R.id.edt_hanni_adresse);
		heimat = (EditText) findViewById(R.id.edt_hanni_heimat);	

                loadPrefs();
	}
	
		private void loadPrefs() {
			SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
			String geb = prefs.getString("GEBURTSTAG", "nicht vorhanden");
		}
		
		private void savePrefs(String key, String value) {
			SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
			Editor edit = prefs.edit();
			edit.putString(key, value);
			edit.commit();
		}
		
		public void onButtonClick(View view) {
			savePrefs("GEBURTSTAG", geb.getText().toString());
			savePrefs("ADRESSE", adresse.getText().toString());
			savePrefs("HEIMAT", heimat.getText().toString());
			finish();
		}
}
 
Woran siehst du denn, dass es nicht funktioniert?
Du müsstet den String doch auch noch irgendwo dem EditText zuweisen.
Im moment speicherst du den Geburtstagsstring nur in einer variable die (auch) geb heißt.
du müsstest geb.setText(prefs.getString("GEBURTSTAG", "nicht vorhanden"));
aufrufen, damit das auch in das Feld gesetzt wird.
 
  • Danke
Reaktionen: RobNeck
Logo, daran lag es. Da hab ich mir mit den uneindeutigen bzw. gleichen Variablennamen selbst ein Bein gestellt. Danke!
 
Zurück
Oben Unten