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