Android:将数组保存到应用程序数据

Android:将数组保存到应用程序数据,android,Android,是否可以将整个数组(甚至是ArrayList)保存到android应用程序数据中 据我所知,你只能做像putInt、putBoolean或putString之类的东西。。。。 但是更复杂的数据类型呢? 有办法吗 或者我必须首先将整个数组转换为字符串,然后在加载时再次将其解析为数组吗?我想你不知道还有类似于putFloatArray(键,值)、putStringArray(键,值)的函数。你可以使用这些函数。对于复杂的数据类型,请使用 Bundle bundle = new

是否可以将整个数组(甚至是ArrayList)保存到android应用程序数据中

据我所知,你只能做像putInt、putBoolean或putString之类的东西。。。。 但是更复杂的数据类型呢? 有办法吗


或者我必须首先将整个数组转换为字符串,然后在加载时再次将其解析为数组吗?

我想你不知道还有类似于putFloatArray(键,值)、putStringArray(键,值)的函数。你可以使用这些函数。

对于复杂的数据类型,请使用

            Bundle bundle = new Bundle();
            bundle.putSerializable("key", object);
            intent.putExtra("bundle", bundle);
编辑:或用于数组

   putStringArray(key,value);
如果“应用程序数据”是指SharedReferences,那么不,您只能

但是,您可以通过“活动”
onSaveInstanceState
/
onRestoreInstanceState
保存应用程序状态,如下所述:

请注意,这会为每个活动保存状态,因此最好在主活动中保存应用程序状态。

您可以将几乎任何形式的数据保存为字节流
byte[]

序列化后,存储为:

putByteArray("key", serializedData);

您需要实现Parcelable。您应该看看本教程

这如何应用于保存应用程序数据,例如SharedReferences?谢谢。不过我有一个ArrayList:-P有没有一种优雅的方式将其存储为字符串数组?这如何应用于保存应用程序数据,例如SharedReferences?putStringSet(字符串键,设置值)在首选项编辑器中设置一组字符串值,在调用commit()后将其写回。哇,所以我只需要调用super.onSaveInstanceState和super.onRestoreInstanceState。所有内容都将自动保存和加载???不,您只需在活动中实现这些方法,它们将被自动调用。无需手动呼叫。看链接。哦……那对我没什么帮助,是吗?:)我希望能够保存更复杂的数据类型。这些方法只是用于保存和加载的方法。但是我实际上如何(以及在哪里)保存一个对象呢?但这只适用于我想将一个对象传输到另一个活动的情况,对吗?它不能保存任何东西,是吗?对不起,我误解了你的问题。Parcelable对于跨活动或流程传递数据非常有用。如果数组包含基元类型,请对其进行迭代并将其保存在SharedReferences中。如果数组或ArrayList更复杂,请将其序列化为base64字符串(请参阅),并将其另存为SharedReference中的字符串。如果您的ARAYLIST很大,考虑使用其他形式的持久存储(写入本地文件或使用SQLite),“真正的大”是什么意思?它是一个arraylist,大约有20-100个字符串[]-条目。其中只有小字符串(短句)