У меня есть два макета в Котлине, каждый с одной кнопкой, и я просто хочу переключаться между ними. Поэтому я добавил OnClickListener для обоих
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button_foward.setOnClickListener(View.OnClickListener {
setContentView(R.layout.second)
button_back.setOnClickListener(View.OnClickListener {
setContentView(R.layout.activity_main)
})
})
Ну, это на самом деле работает. Я могу перейти ко второму макету и переключиться обратно на первый, но не могу снова открыть второй макет!
Я подумал, что мне придется переопределить Слушатель после возврата к основному виду, поэтому я создал две отдельные функции для установки представлений.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this@MainActivity.createMainScreen()
})
}
fun createMainScreen(){
setContentView(R.layout.activity_main)
button_foward.setOnClickListener(View.OnClickListener {
this@MainActivity.createSecondScreen()
})
}
fun createSecondScreen(){
setContentView(R.layout.second)
button_back.setOnClickListener(View.OnClickListener {
this@MainActivity.createMainScreen()
})
}
Этот способ работал, когда я пытался избавиться от той же проблемы в Java, но в Kotlin я все еще могу использовать каждую кнопку только один раз.
Как мне это решить? Можно ли (нужно ли) сбросить кнопки перед их переопределением?
Или может быть альтернатива для использования setContentView?
Спасибо за помощь!