Действия по рефакторингу, которые отличаются только представленными данными - PullRequest
0 голосов
/ 26 мая 2020

Я пишу приложение Android в Android Studio с Kotlin. Поскольку я новичок в этом, у меня было неправильное представление о том, что каждый новый «выстрел» требует нового действия. Я пишу сюжетную игру с несколькими кадрами.

Итак, мои действия различаются только данными.

Есть 2 типа повторяющихся частей:

1-й: при нажатии следующей кнопки меняется только изображение на экране.

Код:

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

}

2-й: пользователь должен решить задачу, щелкнув правильный ответ.

Код:

 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
}

}

Я читал это было бы лучше избавиться от повторяющихся частей кода и как-то реорганизовать его.

Может ли кто-нибудь дать мне подсказку, где я действительно могу найти, как реорганизовать свой код? Был бы очень признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...