- Forum-Beiträge: 3
11.03.2016, 14:57:47 via Website
11.03.2016 14:57:47 via Website
Hallo,
Ich fange grade an mit der Programmierung und möchte gerne ein Array dauerhaft speichern, sodass beim wieder öffnen der App die veränderten Werte im Array erhalten bleiben.
Nach langen suchen und probieren hab ich es geschafft, aber ich weiß nicht ob es optimale ist.
Für jeden Arraywert wird eine Datei erstellt und gespeichert geht das gut mit mehreren Datein oder verstehe ich was falsch.
Hier unten ist der Code.
Mfg
Assasin
Meine XML Datei
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textE"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onS"
android:text="Save"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/viewL"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onL"
android:text="Load"/>
`
Die Java Datei:
package com.mycompany.myapp;
import android.app.;
import android.os.;
import android.view.;
import android.widget.;
import android.;
import java.io.;
import android.content.;
import android.text.style.;
import java.util.;
import android.view.inputmethod.;
public class MainActivity extends Activity
{
String Speicherplatz[] = {"leer","leer","leer"};
String Speicherdatei[] = {"Speicher1","Speicher2","Speicher3"};
int arraynummer =0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onS(View view) // die Variablen in Datei speichern.
{
if(arraynummer > 2)
// Max. drei Variablen speichern.
//wenn mehr wird der Speicher zurückgesetzt und
//die anderen mit den neuen überschrieben
{arraynummer=0;
Toast.makeText(this, "Speicher zurückgesetzt. Drei Plätze vorhanden", Toast.LENGTH_SHORT).show();}
EditText eingabeS = (EditText) findViewById(R.id.textE);
Speicherplatz[arraynummer] = eingabeS.getText().toString();
if(Speicherplatz[arraynummer].equals(""))
{Toast.makeText(this, "kein speicher inhalt", Toast.LENGTH_LONG).show();}
else{
try
{
FileOutputStream fos = openFileOutput(Speicherdatei[arraynummer], Context.MODE_PRIVATE);
try
{
fos.write(Speicherplatz[arraynummer].getBytes());
Toast.makeText(this, "gespeichert", Toast.LENGTH_LONG).show();
fos.close();
arraynummer += 1;
}
catch (IOException e)
{}
}
catch (FileNotFoundException e)
{Toast.makeText(this, "datei nicht da", Toast.LENGTH_LONG).show();}
}}
public void onL(View view) // die Variablen aus den Datein laden
{
arraynummer = 0;
TextView anzeigeL = (TextView) findViewById(R.id.viewL);
try
{
for(int i =0; i <= 2; i++)
{
FileInputStream fis = openFileInput(Speicherdatei[arraynummer]);
try
{
byte[] readData = new byte[fis.available()];
while (fis.read(readData) != -1)
{
String geladendeDatei = new String(readData);
Speicherplatz[arraynummer] = geladendeDatei;
Toast.makeText(this, "geladen", Toast.LENGTH_LONG).show();
arraynummer++;
}
}
catch (IOException e)
{}
}
}
catch (FileNotFoundException e)
{}
// anzeige von den gespeicherten Varablen. Pro Varable wird eine neue Zeile erschaffe.
anzeigeL.setText(Speicherplatz[0] + "\n" + Speicherplatz[1] + "\n" + Speicherplatz[2]);
}
}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.