我应该在哪里保存游戏关卡数据?

时间:2018-12-21 16:34:10

标签: android

我在Activity类的onCreate方法中硬编码了游戏级别的数据,但是b我想从其他类访问它们。数据本身不会改变。 我应该将数据保存在哪里,最有效的方法是什么?

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

3 个答案:

答案 0 :(得分:1)

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

这样,您就可以将代码和数据完全分开,并且不会意外更改。

答案 1 :(得分:0)

您可以拥有一个静态类DataHandler,该类具有数据,并可以在所有活动中从此类访问数据。

答案 2 :(得分:0)

在游戏中根据需要保存和更改数据的最快方法(保存字符串数组)是使用共享首选项:

https://developer.android.com/training/data-storage/shared-preferences