Ich benutze GSON, um JSON in SharedPreferences zu speichern, ich habe eine Methode, die die gepulste Zeile aus der ListView löscht, Wie kann ich auch die sharedPreferences aus dieser geklappten Zeile löschen?Wie lösche SharedPreferences von ausgewählten ListView
ListViewNews.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
...
case MotionEvent.ACTION_UP:
if (event.getX() - historicX < -DELTA) {
...
alertDialogBuilder.setPositiveButton("Yes",new DialogInterface. OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
newsAdapter.FunctionDeleteRowWhenSlidingLeft(position);
**ATTEMPT OF DELETION**
//Delete from Database
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sharedPrefs.edit();
Gson gson = new Gson();
String json = sharedPrefs.getString(TAG, null);
News news = gson.fromJson(json, News.class);
News selItem = (News) newsAdapter.getItem(position);
//read
News news2 = gson.fromJson(json, News.class);
System.out.println("---"+news2.getStory_id()+"---");
/*
This deletes everything
editor.remove("HackerNews");
*/
editor.commit();
editor.apply();
//read
sharedPrefs.getString("json", "");
System.out.println("SP"+sharedPrefs.getAll());
}
...
machen Welche Art von Daten ist Ihre ListView gemacht? Sind diese Daten in einem einzigen JSON gespeichert? Ist es möglich, den Schlüsselwert SharedPreferences zu überschreiben, oder müssen Sie ihn einfach ändern? Ich denke, ich kann helfen, aber ich muss die Antwort für diese Fragen wissen :) –
@ S.Czop meine Listenansicht besteht aus GSON Strings in SharedPreferences gespeichert, so werden sie gespeichert: 'news = new News (story_id, story_title, autor, erstellt_at, story_url); // Hinzufügen von JSON SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences (context); SharedPreferences.Editor Editor = sharedPrefs.edit(); Gson gson = neuer Gson(); String json = gson.toJson (Nachrichten); Editor.putString (TAG, JSON); editor.commit(); // lesen Nachrichten news2 = gson.fromJson (json, News.class); // Hinzufügen von SharedPreferences newsAdapter.add (news2); ' – Schavcovsky