我正在设计一种将一些值存储在与一组视图相关的 SharedPreferences 中的方法。该方法将由一堆子类运行,因此我需要一种简单的方法来存储首选项的名称,并且我正在考虑使用视图的 R.id 值,因为我已经将它们放在 ArrayList 中对于另一种方法。但是,我有点担心这些值可能会在运行之间发生变化,这将有效地使存储的首选项无效。他们有没有在发展之外发生变化?
问问题
625 次
我正在设计一种将一些值存储在与一组视图相关的 SharedPreferences 中的方法。该方法将由一堆子类运行,因此我需要一种简单的方法来存储首选项的名称,并且我正在考虑使用视图的 R.id 值,因为我已经将它们放在 ArrayList 中对于另一种方法。但是,我有点担心这些值可能会在运行之间发生变化,这将有效地使存储的首选项无效。他们有没有在发展之外发生变化?
两者都没有,它们在编译之间发生了变化。
R 是在应用程序的构建过程中自动生成的类。然后编译并在您的应用程序中用作普通类。
来自 Android 文档 -访问资源:
当您的应用程序被编译时,aapt 会生成 R 类,其中包含 res/ 目录中所有资源的资源 ID。对于每种类型的资源,都有一个 R 子类(例如,所有可绘制资源的 R.drawable),对于该类型的每种资源,都有一个静态整数(例如,R.drawable.icon)。此整数是可用于检索资源的资源 ID。