首页 > 解决方案 > 我应该在哪里保存游戏关卡数据?

问题描述

我在 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)
}

标签: android

解决方案


对于不变的数据,我建议您使用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)

这样您就可以清楚地分离代码和数据,并且不会意外更改它。


推荐阅读