首页 > 解决方案 > 重构活动仅在提供的数据上有所不同

问题描述

我正在使用 Kotlin 在 Android Studio 中编写一个 Android 应用程序。因为我是新手,所以我错误地认为每一个新的“镜头”都需要一个新的活动。我正在写一个有多个镜头的故事游戏。

因此,我的活动仅因数据而异。

有 2 种类型的重复部分:

第一个:只有屏幕上的图片随着下一步按钮的按下而改变。

代码:

class Kadr1Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_kadr01)
}

fun nextClick(view: View) {
    val intentKadr2 = Intent(this, Kadr2Activity::class.java) //every next button intents next shot
    startActivity(intentKadr2)
    this.finish()
}

fun backClick(view: View){
    val intentKadr0 = Intent(this, MainActivity::class.java) //every back button intents previous shot
    startActivity(intentKadr0)
    this.finish()
}

}

第二:用户应通过单击正确答案来解决任务。

代码:

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_kadr13)
}

var flag = false

fun nextClick(view: View) {

    val intentKadr14 = Intent(this, Kadr14Activity::class.java)
    startActivity(intentKadr14)
    this.finish()

}

fun backClick(view: View){
    val intentKadr12 = Intent(this, Kadr12Activity::class.java)
    startActivity(intentKadr12)
    this.finish()
}

fun btn1Click(view: View){
    ans131Btn.setImageResource(R.drawable.btn_13_1_chosen) //picture of chosen button is changed every time it is pressed
    ans132Btn.setImageResource(R.drawable.btn_13_2)
    ans133Btn.setImageResource(R.drawable.btn_13_3)
    flag = false
}

fun btn2Click(view: View){
    ans132Btn.setImageResource(R.drawable.btn_13_2_chosen)
    ans131Btn.setImageResource(R.drawable.btn_13_1)
    ans133Btn.setImageResource(R.drawable.btn_13_3)
    flag = true
}

fun btn3Click(view: View){
    ans133Btn.setImageResource(R.drawable.btn_13_3_chosen) 
    ans131Btn.setImageResource(R.drawable.btn_13_1)
    ans132Btn.setImageResource(R.drawable.btn_13_2)
    flag = false
}

}

我读过最好摆脱重复的代码部分并以某种方式对其进行重构。

谁能给我一个提示,我可以在哪里真正找到如何重构我的代码?将不胜感激。

标签: androidandroid-studiokotlin

解决方案


推荐阅读