【发布时间】:2021-04-28 07:07:21
【问题描述】:
我是 android studio Kotlin 的新手。
我想制作一个具有多个级别的测验应用程序。当 LevelActivity 中的级别按钮被按下时,键值对使用 intent.putExtra("problem1", 1) 传递给 ProblemActivity,ProblemActivity 使用 intent.hasExtra("problem", 1) 显示问题。如果问题正确,请使用 intent.putExtra("Clear1", 101) 回到 LevelActivity,并且可以通过 intent.hasExtra("Clear1") 单击下一级按钮。
当我关闭应用程序并再次运行它时,我想让以前数据可点击的按钮保持可点击状态。我研究了 SharedPreference,但我不确定如何保存和恢复意图数据,因为大部分内容都是关于 edit_text。如果您能告诉我,我将不胜感激。
谢谢。
LevelActivity.kt
类 LevelActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_level)
if (intent.hasExtra("Clear1")) {
easy2.isEnabled = true
easy2.isClickable = true
easy2.setTextColor(Color.parseColor("#000000"))
} else {
easy2.isEnabled = false
easy2.isClickable = false
}
easy1.setOnClickListener {
val intent = Intent(this, ProblemActivity::class.java)
intent.putExtra("problem1", 1)
startActivityForResult(intent, 1)
finish()
}
easy2.setOnClickListener {
val intent = Intent(this, ProblemActivity::class.java)
intent.putExtra("problem2", 2)
startActivityForResult(intent, 2)
finish()
}
}
}
ProblmeActivity.kt
var round = 1
类 ProblemActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_problem)
if (intent.hasExtra("problem1")) {
img_problem.setImageResource(R.drawable.slide1)
tv_problem.text = "Plus"
tv_problemlevel.text = "1"
round = 1
}
if (intent.hasExtra("problem2")) {
img_problem.setImageResource(R.drawable.slide2)
tv_problem.text = "Minus"
tv_problemlevel.text = "2"
round = 2
}
tv_enter.setOnClickListener {
checkAnswer()
}
fun checkAnswer() {
if (tv_expression.text.toString() == "1" && round == 1) {
val intent = Intent(this, LevelActivity::class.java)
intent.putExtra("Clear1", "Clear1")
startActivityForResult(intent, 101)
finish()
}
if (tv_expression.text.toString() == "2" && round == 2) {
val intent = Intent(this, LevelActivity::class.java)
intent.putExtra("Clear2", 102)
startActivityForResult(intent, 102)
finish()
}
else{
var wrong_toast = Toast.makeText(this, "Wrong! Try again!", Toast.LENGTH_SHORT)
wrong_toast.show()
}
}
}
【问题讨论】:
标签: android kotlin android-intent sharedpreferences