当前位置: 首页 > 知识库问答 >
问题:

如何使用共享首选项在列表视图中保存动态添加的项目?

韩捷
2023-03-14
        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();

你好。我需要帮助。我想用SharedPreferences在Listview中保存动态添加的项目。我正在添加带有公共void favekle函数的listview项目。我正在向数组列表添加条目

共有3个答案

淳于飞文
2023-03-14

您可以将字符串集合储存在共享偏好设置中,然后在取回它们时将它们转换回列表。

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

PreferenceManager.getDefaultSharedPreferences(context)
    .edit()
    .putStringSet("stringset", new HashSet<String>(list))
    .commit();
戚研
2023-03-14

您应该使用共享首选项存储单个键值配对数据。尝试存储大型分组数据根本没有效率。您应该使用 SQLite 数据库。

SQLite和ContentProvider教程

宗政文彬
2023-03-14

您可以通过以下方式保存到共享首选项

SharedPreferences sp = context.getSharedPreferences(
            "file name", 0);
    SharedPreferences.Editor spEdit = sp.edit();
    spEdit.putLong(key, value);
    spEdit.commit();
 类似资料:
  • 我在共享首选项中保存列表并将其显示在列表视图中没有问题,但我的问题是当我重新启动应用程序并尝试将项目添加到列表视图时 旧的存储项目已删除.有我的代码: } public void getDates(){

  • 以下是我的主要活动 这是我的作品 下面是我的activity_main.xml 和主要活动 现在调试器输出 很明显,即使我稍微调整一下,它也不能正常工作。接下来是:使用共享首选项保存android主题

  • 我将历史记录项(单词)保存到共享首选项,并且历史记录已很好地加载到ListView中查看。然后,我使用这些代码行从 ListView 中删除特定项: 选定项将从ListView中明确删除,但不会从保存该项的SharedPreferences中删除。因此,当重新加载Listview时,该项仍然存在。 我的问题是:我如何编写代码以从共享首选项中删除选定的项目?我的意思是如何从ListView和共享首选

  • 我正在创建一个番茄工作计时器应用程序。它有2项活动: 主要活动是设置时间 我已经创建了一个对象,它保存了设置的时间,我希望这些时间显示在Recents活动中的按钮中。但是,似乎没有保存数据,而是显示了包名称。

  • 你好,我正在尝试保存一个共享首选项的主题。当用户点击某个主题的按钮时,我希望该主题被设置为默认并保存,所以当他们重新打开应用程序时,它仍然是那个新主题。

  • 我正在尝试将Firebase DataSnapshot对象保存到SharedReferences。 请看这篇文章,我在其中设计了一种方法来实现这一点。 ... 到目前为止,我已经尝试了: > 使用Gson。Json方法。结果:似乎不起作用。。。我不认为DataSnapshot类是“POJO”类型的类。。。至少没有一个能与gson合作。 使用此方法: 私有静态字符串toString(可序列化o)引发