如何使用共享偏好在Listview中保存动态添加的项目?

时间:2014-05-23 13:46:52

标签: android sharedpreferences

        protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    preferences = getSharedPreferences(FAVORI, 0);

    ListView favlist = (ListView) findViewById(R.id.favoriliste);

    ArrayList<String> foo = new ArrayList<String>();
    String [] bar = foo.toArray(new String[0]);

    public void favekle(String string) {

    foo.add(string);
    bar = foo.toArray(new String[0]);

    favadapter = new MyFavAdapter(Diziler.this,
            android.R.layout.simple_list_item_1, R.id.txtTitle, bar);
    // favlist= new ArrayList<>();
    favlist.setAdapter(favadapter);
    favadapter.notifyDataSetChanged();

}       
    favadapter = new MyFavAdapter(Diziler.this,
            android.R.layout.simple_list_item_1, R.id.txtTitle, bar);
    // favlist= new ArrayList<>();
    favlist.setAdapter(favadapter);
    favadapter.notifyDataSetChanged();

Hello.I需要帮助。我希望使用SharedPreferences在Listview中保存动态添加的项目。 我添加了具有public void favekle功能的listview项目。我将项目添加到ArrayList&lt;&gt;比我转换ArrayList&lt;&gt;最后我将项目设置为适配器。 如果我重新启动应用程序,我的listview项目将消失。 如何使用sharedpreferences保存添加的项目?我使用了StringBuilder但它没有工作。谢谢。

3 个答案:

答案 0 :(得分:0)

您可以通过这种方式保存为共享偏好

SharedPreferences sp = context.getSharedPreferences(
            "file name", 0);
    SharedPreferences.Editor spEdit = sp.edit();
    spEdit.putLong(key, value);
    spEdit.commit();

答案 1 :(得分:0)

您应该使用SharedPreferences存储单个键值配对数据。尝试存储大型分组数据根本不高效。您应该使用SQLite数据库。

SQLite and ContentProvider Tutorial

答案 2 :(得分:0)

您可以在共享首选项中存储字符串集,然后在检索它们时将它们转换回List。

ArrayList<String> list = new ArrayList<String>();
list.add("test1");
list.add("test2");

PreferenceManager.getDefaultSharedPreferences(context)
    .edit()
    .putStringSet("stringset", new HashSet<String>(list))
    .commit();