退出应用程序时保存变量
Saving a variable when exiting an application
我是 Android Studio 的新手(我昨天才开始),我正在编写一种唱首歌游戏(在 XML 和 kotlin 中)。
我希望在离开应用程序时保存点击计数器(在文本视图中,开头有文本)并在启动时加载。我查看了保存首选项,但我不太明白它是如何工作的。你们能帮帮我吗?
`class 主活动:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val one:ImageButton = findViewById<ImageButton>(R.id.iv_image)
val mp: MediaPlayer = MediaPlayer.create(this, R.raw.click)
var mCounter = 0
var txv = findViewById<TextView>(R.id.tx)
one.setOnClickListener {
//Play sound when click
mp.start()
//Increment click counter
mCounter++
txv.text = "Fixed mistakes: " + mCounter.toString()
}
}
}`
欢迎任何帮助:)
编辑:我发布了一些我用 savedpreferences 做的代码,但它不是完全可用的。我很乐意提供一些帮助^^
EDIT V2:查看解决方案的评论
EDIT V2:我做到了,这是代码
`class MainActivity : AppCompatActivity() {
//Counter lateinit initialisation
var mCounter by Delegates.notNull<Int>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//Load la sauvegarde
loadData()
val one:ImageButton = findViewById<ImageButton>(R.id.iv_image)
val mp: MediaPlayer = MediaPlayer.create(this, R.raw.click)
var txv = findViewById<TextView>(R.id.tx)
//ON CLICK
one.setOnClickListener {
//Play le son quand on clique
mp.start()
//Compteur de click
mCounter++
txv.text = "Fixed mistakes: $mCounter"
saveData()
}
}
private fun saveData() {
val sharedPreferences = getSharedPreferences("sharedPrefs" , 0)
val editor = sharedPreferences.edit()
editor.putInt("INT_KEY", mCounter)
editor.commit()
}
private fun loadData() {
val sharedPreferences = getSharedPreferences("sharedPrefs" , 0)
mCounter = sharedPreferences.getInt("INT_KEY", 0)
}
}`
我是 Android Studio 的新手(我昨天才开始),我正在编写一种唱首歌游戏(在 XML 和 kotlin 中)。 我希望在离开应用程序时保存点击计数器(在文本视图中,开头有文本)并在启动时加载。我查看了保存首选项,但我不太明白它是如何工作的。你们能帮帮我吗?
`class 主活动:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val one:ImageButton = findViewById<ImageButton>(R.id.iv_image)
val mp: MediaPlayer = MediaPlayer.create(this, R.raw.click)
var mCounter = 0
var txv = findViewById<TextView>(R.id.tx)
one.setOnClickListener {
//Play sound when click
mp.start()
//Increment click counter
mCounter++
txv.text = "Fixed mistakes: " + mCounter.toString()
}
}
}`
欢迎任何帮助:)
编辑:我发布了一些我用 savedpreferences 做的代码,但它不是完全可用的。我很乐意提供一些帮助^^
EDIT V2:查看解决方案的评论
EDIT V2:我做到了,这是代码 `class MainActivity : AppCompatActivity() {
//Counter lateinit initialisation
var mCounter by Delegates.notNull<Int>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//Load la sauvegarde
loadData()
val one:ImageButton = findViewById<ImageButton>(R.id.iv_image)
val mp: MediaPlayer = MediaPlayer.create(this, R.raw.click)
var txv = findViewById<TextView>(R.id.tx)
//ON CLICK
one.setOnClickListener {
//Play le son quand on clique
mp.start()
//Compteur de click
mCounter++
txv.text = "Fixed mistakes: $mCounter"
saveData()
}
}
private fun saveData() {
val sharedPreferences = getSharedPreferences("sharedPrefs" , 0)
val editor = sharedPreferences.edit()
editor.putInt("INT_KEY", mCounter)
editor.commit()
}
private fun loadData() {
val sharedPreferences = getSharedPreferences("sharedPrefs" , 0)
mCounter = sharedPreferences.getInt("INT_KEY", 0)
}
}`