Можем ли мы использовать Kotlin для L oop на Android Studio EditText, чей идентификатор содержит целое число? - PullRequest
1 голос
/ 15 марта 2020

Можем ли мы использовать Kotlin Для L oop в EditText, чей идентификатор содержит целое число? Я думал о преобразовании идентификатора EdiText в sting, редактирование, затем объединение, но я получил ошибку в IDE.

Можем ли мы сократить этот код:

R.id.clearNutCountButton -> {
            b1p1.text.clear()
            b2p1.text.clear()
            b3p1.text.clear()
            b1p2.text.clear()
            b2p2.text.clear()
            b3p2.text.clear()
            b1p3.text.clear()
            b2p3.text.clear()
            b3p3.text.clear()
            b1p4.text.clear()
            b2p4.text.clear()
            b3p4.text.clear()
            b1p5.text.clear()
            b2p5.text.clear()
            b3p5.text.clear()
            b1p6.text.clear()
            b2p6.text.clear()
            b3p6.text.clear()
            b1p7.text.clear()
            b2p7.text.clear()
            b3p7.text.clear()
            b1p8.text.clear()
            b2p8.text.clear()
            b3p8.text.clear()
            b1p9.text.clear()
            b2p9.text.clear()
            b3p9.text.clear()
            b1p10.text.clear()
            b2p10.text.clear()
            b3p10.text.clear()
            b1p11.text.clear()
            b2p11.text.clear()
            b3p11.text.clear()
            b1p12.text.clear()
            b2p12.text.clear()
            b3p12.text.clear()
            b1p13.text.clear()
            b2p13.text.clear()
            b3p13.text.clear()
            b1p14.text.clear()
            b2p14.text.clear()
            b3p14.text.clear()
            b1p15.text.clear()
            b2p15.text.clear()
            b3p15.text.clear()
}

1 Ответ

2 голосов
/ 15 марта 2020

2 метода:

1 - Если все ваши EditTexts принадлежат ViewGroup, скажем, id: parentGroup, вы можете попробовать это (в Kotlin):

    parentGroup.forEach { 
        if (it is EditText) {
            it.text.clear()
        }
    }

2 - Если они не принадлежат ViewGroup (и вы не хотите группировать их в группу), вы можете сделать это (менее эффективный способ написания, я не буду печатать все тексты редактирования здесь):

    listOf(b1p1, b2p1, b3p1).forEach { 
        it.text.clear()
    }
...