# Highscoreliste mit SharedPreferences oder XML-Datei?



## caipi-dale (19. Apr 2014)

Hallo Ihr,

aktuell versuche ich in Eclipse eine kleine Android-APP zu programmieren, bei welcher maximal 4 Spieler vorhanden sind und dazu jeweils ein Zahlenwert als Highscore. Das Speichern und Lesen der Werte habe ich gestern erfolgreich über "SharedPreferences" erstellen können, aber dabei fiel mir leider erst im nachhinein auf, dass ich immer nur den letzten Wert aller Spieler speichern & lesen kann.

Eigentlich wollte ich aber eine Highscoreliste nach Datum sortiert. *Geht dies auch mit SharedPreferences oder sollte ich hier besser eine XML-Datei generieren lassen?*

Beispiel:

19.04.2014 Spieler1: 10, Spieler2: 13, Spieler3: 08, Spieler4: 00
18.04.2014 Spieler1: 12, Spieler2: 20, Spieler3: 00, Spieler4: 00
12.04.2014 Spieler1: 11, Spieler2: 09, Spieler3: 07, Spieler4: 00
etc.

_Ich vermute mal, dass die Zeilenanzahl maximal zwischen 50 und 100 liegen wird._

private void schreibehighscoreZahl1(int highscoreZahl1)
	{	SharedPreferences pref = getSharedPreferences("SCORE1", 0);
		SharedPreferences.Editor editor = pref.edit();
		editor.putInt("HIGHSCORE", highscoreZahl1);
		editor.commit(); }

Falls es doch XML wird, kennt Ihr ein gutes Tutorial oder so?

Vielen Dank, Gruss caipi-dale.


----------



## caipi-dale (24. Apr 2014)

Hallo Ihr,

mit nachstehendem Code schreibe ich nun in den "Internal Storage" und kann die Daten auch wieder auslesen. Ich hoffe, dass diese Vorgehensweise in Ordnung ist?


```
//dateiSchreiben bzw file-name
	private String file = "mydata";
	private String data;
	private EditText et;
	
	//dateiSchreiben
	@SuppressLint("WorldReadableFiles")
	public void save(View view)
	{
		data = editnameSP1 + ": " + anzahlTellerSP1;
	      
	      try
	      {
	         FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE);
	         fOut.write(data.getBytes());
	         fOut.close();
	         Toast.makeText(getBaseContext(),"file saved",
	         Toast.LENGTH_SHORT).show();
	      }
```

Aber wie muss ich jetzt meine einzelnen Felder "editnameSP1" und "anzahlTellerSP1" anordnen, damit diese A.) wie nachstehend gezeigt einzeln eingelesen werden können und später die gesamte Liste scrollbar ist und B.) wie kann ich das Systemdatum wie nachstehend mitabspeichern und wieder einlesen?

19.04.2014 Spieler1: 10, Spieler2: 13, Spieler3: 08, Spieler4: 00
18.04.2014 Spieler1: 12, Spieler2: 20, Spieler3: 00, Spieler4: 00
12.04.2014 Spieler1: 11, Spieler2: 09, Spieler3: 07, Spieler4: 00
etc.

Danke für Eure Hilfe !!!


----------

