在 android 中离开 activity 后如何保留我的列表视图?
How do I retain my listview after leaving the activity in android?
我有一个列表视图,每次用户单击添加按钮时我都想在其中存储特定数据。但是直到现在我在实施方面几乎没有成功。我知道它必须通过使用 sharedpreferences 来完成,并尝试实现 sharedpreferences 的保存状态和恢复状态,但我的列表视图仍然只添加当前单击的元素。
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);
}
}
我希望有人能帮我告诉我我做错了什么
试试下面的代码,如果有任何问题请告诉我。
public class ListviewActivity extends AppCompatActivity {
ArrayList<String> dataa;
List <String> arraylist = new ArrayList<>();
@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.addAll(arraylist);
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);
arraylist.clear();
arraylist.addAll(getdataback);
}
}
我有一个列表视图,每次用户单击添加按钮时我都想在其中存储特定数据。但是直到现在我在实施方面几乎没有成功。我知道它必须通过使用 sharedpreferences 来完成,并尝试实现 sharedpreferences 的保存状态和恢复状态,但我的列表视图仍然只添加当前单击的元素。
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);
}
}
我希望有人能帮我告诉我我做错了什么
试试下面的代码,如果有任何问题请告诉我。
public class ListviewActivity extends AppCompatActivity {
ArrayList<String> dataa;
List <String> arraylist = new ArrayList<>();
@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.addAll(arraylist);
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);
arraylist.clear();
arraylist.addAll(getdataback);
}
}