Поскольку вы хотите цикл, я бы предложил использовать список, чтобы упростить итерацию и добавить больше покемонов в будущем.
Создайте класс данных Pokemon, если у вас его еще нет.
data class Pokemon(val name: String, val imageUrl: String)
Создайте столько экземпляров этого класса, сколько вам нужно, и добавьте их в список.
val pokemonList: List<Pokemon> = listOf(vaporeon, jolteon, flareon)
Нам также нужно будет сохранить индекс текущего покемона, которого мыОтображаем
val currentIndex = 0
Затем мы создадим Runnable и запланируем его выполнение каждые три секунды, вы можете захотеть сделать это в onResume.
val service = Executors.newSingleThreadScheduledExecutor()
service.scheduleAtFixedRate({ displayPokemon() }, 0, 3, TimeUnit.SECONDS)
Теперь создайте displayPokemonфункция, которая будет вызываться каждые 3 секунды.
fun displayPokemon() {
}
Внутри этой функции нам нужно знать, каким будет следующий отображаемый нами покемон, основываясь на текущем покемоне.
val next = currentIndex + 1
if (next >= pokemonList.size) {
// we're at the end, go back to 0
currentIndex = 0
} else {
currentIndex = next
}
val pokemon = pokemonList[currentIndex]
Теперь, когда у нас появился следующий покемон, мы можем использовать его для заполнения представления
evoChart2.visibility = View.VISIBLE
Glide.with(this).load(pokemon.imageUrl).into(evoChart2)
evolveOption2.text = pokemon.name
evolveOption2.text = ""
evoChart2.visibility = View.GONE
Наконец, мы не хотим, чтобы это происходило, когда действие / фрагмент находится в фоновом режиме, поэтому мы добавляемследующий код для onPause
service.shutdown()