Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓数据存储选择几个固定数量的条目,sqlite还是SharedReference?_Android_Database_Sqlite_Sharedpreferences - Fatal编程技术网

Android 安卓数据存储选择几个固定数量的条目,sqlite还是SharedReference?

Android 安卓数据存储选择几个固定数量的条目,sqlite还是SharedReference?,android,database,sqlite,sharedpreferences,Android,Database,Sqlite,Sharedpreferences,我想制作一款类似Google keep的应用程序,它具有以下功能: 存储每个笔记和照片的名称、内容、背景颜色(不包括待办事项列表,有点复杂),笔记使用TextView,照片使用自定义视图(TextView+ImageView) 条目可以通过拖放相互改变位置 最多只能保存10个条目。如果存在打开入口位置,应用程序将用占位符填充该位置,并在一个屏幕中显示所有10个位置(无滚动条) 在我看来,这两种方法在这种情况下都有一些缺点: SharedReferences:数据量太多,种类复杂 Sqlite:数

我想制作一款类似Google keep的应用程序,它具有以下功能:

  • 存储每个笔记和照片的名称、内容、背景颜色(不包括待办事项列表,有点复杂),笔记使用
    TextView
    ,照片使用自定义视图(
    TextView
    +
    ImageView

  • 条目可以通过拖放相互改变位置

  • 最多只能保存10个条目。如果存在打开入口位置,应用程序将用占位符填充该位置,并在一个屏幕中显示所有10个位置(无滚动条)

  • 在我看来,这两种方法在这种情况下都有一些缺点:

    SharedReferences:数据量太多,种类复杂

    Sqlite:数据条目是有限的。此外,我认为
    TableLayout
    GridView
    更合适,因为我希望它们在一个屏幕上显示,而无需滚动条


    那么我应该选择哪种数据存储方法,sqlite还是SharedReferences?谢谢您的帮助。

    共享参考不适合。正如您所注意到的,这并不意味着数据的数量和复杂性。顾名思义,它是用来存储用户的偏好,而不是他们的数据

    请注意,SQLite支持BLOB类型,可用于存储图像等

    但你并不局限于这两种选择。第三种选择是以您选择的任何格式将数据存储在文件中,例如,您可以将Java对象序列化为文件。由于您将处理有限的数据量,因此不一定需要SQLite的功能


    但总的来说,我认为SQLite是最好的选择。由于上述原因,它比SharedReference更好,比第三个选项更好,因为它内置于Android系统中,并且被广泛使用。

    不要混淆数据的显示方式和存储位置。此外,您存储在共享prefs中的任何内容也可以存储在sqlite中,反之亦然。谢谢您的建议,我将尝试sqlite方法。