J'ai un listview dans lequel je veux stocker des données spécifiques chaque fois que l'utilisateur clique sur le bouton d'ajout. Cependant, jusqu'à présent, j'ai eu peu de succès avec la mise en œuvre. Je sais que cela doit être fait en utilisant sharedpreferences et j'ai essayé d'implémenter le statut d'enregistrement des préférences partagées et le statut de restauration, mais ma liste ne fait qu'ajouter l'élément sur lequel on clique actuellement.Comment conserver ma liste après avoir quitté l'activité dans android?
package com.example.daniel.pset3_daniel_jacob;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class listview extends AppCompatActivity {
ArrayList<String> dataa;
@Override
protected void onCreate(Bundle savedInstanceState) {
onRestoredPreferences();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
Bundle extras = getIntent().getExtras();
String dataExtra = extras.getString("key");
dataa = new ArrayList<String>();
dataa.add(dataExtra);
ListView listView = (ListView) findViewById(R.id.listview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, dataa);
assert listView != null;
listView.setAdapter(adapter);
Savedpreferences(dataa);
}
public void Savedpreferences(List<String> dataa) {
SharedPreferences preferences = this.getSharedPreferences("object", 0);
SharedPreferences.Editor editor = preferences.edit();
List<String> arraylist = new ArrayList<String>(dataa);
Set<String> newset = new HashSet<String>(arraylist);
editor.putStringSet("stringset", newset);
editor.commit();
}
public void onRestoredPreferences()
{
SharedPreferences preferences = getApplicationContext().getSharedPreferences("object", 0);
Set<String> getdataback = preferences.getStringSet("stringset", null);
List <String> arraylist = new ArrayList<String>(getdataback);
}
}
J'espère que quelqu'un peut me aider à me dire ce que je fais mal
Si vous voulez enregistrer pour une utilisation ultérieure il est bon d'enregistrer dans SharedPreference Ou écrire dans le fichier comme newLine() –