android - 为以后的工作存储用户输入数据的最佳方式

标签 android

我是 Android 开发的新手,如果能得到任何帮助,我将不胜感激。

我正在设计一个应用程序,在某些时候需要询问用户他 friend 的名字,以便以后使用这些名字,即这些名字将在下拉列表中使用,并将显示在一个单独的查看。

我的问题是:有效存储这些名称然后能够访问它们以进行读取、编辑和删除的最佳方法是什么?名字的数量不会很大(最多20条)。

回应关于添加更多信息的评论:

我需要用户指定将在 2 个不同的 Android Activity 中使用的名称(字符串)列表: 1) 此姓名列表将在作为申请表一部分的 Spinner 中使用 2) 此名称列表将用于单独的 Activity,该 Activity 旨在处理(编辑和删除)现有项目并添加新项目。

我还需要在对这个列表进行操作(编辑、删除和创建新项目)后,两个 Activity 都会发生变化。该列表应该在用户退出应用程序后可用,因此据我所知,它应该存储在内部存储中的某个位置。

最佳答案

我讨厌人们通过发布文档链接来回答问题,所以我不会那样做。

我将发布文档链接并提供答案:

文档:http://developer.android.com/guide/topics/data/data-storage.html (这实际上是一本好书,不会太长,而且很高兴知道您的选择是什么)。

在我看来你需要保存一个 ArrayList 或其他东西,你说 20 个名字是最大数量,所以我会说你有 3 个可行的选项,我在这里展示,按简单的升序排列使用我作为比较者的拙见:

1- 内部存储
2- 共享首选项
3- 非常有趣的方法,我刚刚在研究一个可以帮助您的选项时发现,当我需要保存一小部分数据时,我肯定会使用它...

/p>

所以我建议的步骤是:将名称放入您最喜欢的集合对象(ArrayList、HashSet 等),然后分别引用上面引用的方法的这些示例:

1- https://stackoverflow.com/a/22234324/367342 (是的,这是一个指向该线程上给出的答案的链接,我投了赞成票,现在我觉得作弊好多了)。

2- Save ArrayList to SharedPreferences

3- https://stackoverflow.com/a/5703738/367342 <- 这个
- 将您的数据转换为 JSONObject
- 将其转换为字符串
- 使用共享首选项保存此字符串
- 稍后将其作为 jsonobject 读取

示例 3(未经测试,抱歉):

//Convert the ArrayList to json:
JSONObject json = new JSONObject();
json.put("uniqueArrays", new JSONArray(items));

//Make it into a string
String myLittleJason = json.toString();

//save it to the shared preferences
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("KEY_TO_THE_NAMES_OF_MY_DEAR_FRIENDS", myLittleJason).commit();

//Loading it back from the preferences
String loadedJsonString = PreferenceManager.getDefaultSharedPreferences(context).getString("KEY_TO_THE_NAMES_OF_MY_DEAR_FRIENDS", "I have no friends, this is the default string returned if the key was not found, so, jokes aside, better make this a empty JSON string");

//making it into a JSON again
JSONObject loadedJson = new JSONObject(loadedJsonString);

//Converting the Json back into a ArrayList
ArrayList items = loadedJson.optJSONArray("uniqueArrays");

我喜欢这种 JSON 方法,如果您也喜欢它,请为原始方法投赞成票(也是;))https://stackoverflow.com/a/5703738/367342

关于android - 为以后的工作存储用户输入数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234199/

相关文章:

java - 从 Intent 返回后无法访问附加功能

java - 适用于 Java 的 android-maps-utils?

Android Studio 连接到设备上的目标 VM 但不会对其进行调试 - 大多数时候

android - 显示错误 :resource previously defined here

android - targetSdkVersion 低于 22 的下载管理器的安全异常

android - 如何从存储中获取准确的容量

php - 用于使用 php 从 mysql 发送 gcm 的 reg_id 数组

android - 一个LinearLayoutManager只能对应一个RecyclerView?

android - GridView : Using RecyclerView or Simply TextView with clickable words

android - 只下载新图像