android - 我应该在哪里保存游戏关卡数据?
问题描述
我在 Activity 类的 onCreate 方法中硬编码了游戏级别数据,但是我想从其他类访问它们。数据本身不会改变。我应该将数据保存在哪里,最有效的方法是什么?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_game)
val words=arrayOf("aris","arsi","ris","risa","asi","sari")
val wordstwo=arrayOf("mzeo","ezo","ezom","zemo","mze")//me
val wordsthree=arrayOf("misni","is","minis","simi","mis","misi")
val wordsfour=arrayOf("Tqveni","vqeniT","iqnevT","Tve","qve","vqeni")//"tqven"
val challege:Array<Array<String>> = arrayOf(words,wordstwo,wordsthree,wordsfour)
startGame(challege)
}
解决方案
对于不变的数据,我建议您使用TypedArray
-Resource
保存在 res/values/arrays.xml 的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="words">
<item>"aris"</item>
<item>"arsi"/item>
<item>"ris"</item>
//... other items
</string-array>
//... other arrays
</resources>
然后在代码中:
val array: Array = resources.getStringArray(R.array.words)
这样您就可以清楚地分离代码和数据,并且不会意外更改它。
推荐阅读
- python - 'l2' 未定义为正则化器
- automated-tests - Elixir Mox 库测试 Phoenix 代码 - 在某些测试文件中没有 Mox 期望
- mysql - playframework 应用程序无法连接到数据库“用户'root'@'localhost'的访问被拒绝(使用密码:是)”
- css - 使用 Protractor JS 测试 CSS 过渡
- reactjs - 如何更改 React Table 中的单元格宽度
- php - 如何在 PHP 中将命名空间添加到 SOAP 元素
- r - 我的用户文件夹中的口音在执行 read_csv() 时产生错误
- python - 使用 matplot lib 添加多个拉图
- capacitor - 在 Web 实现中获取插件特定的配置
- c# - 同一类型的多个鉴别器