Массив кнопок в Котлине - PullRequest
0 голосов
/ 22 марта 2019

Как я могу создать массив кнопок в Android Studio в Kotlin? Я создал кнопки с их идентификаторами в XML-файле, и теперь я хочу использовать те же кнопки в своем коде Kotlin, что и элементы массива.

Я пробовал что-то вроде этого:

var buttons: Array<Button> = array(25)

и затем:

buttons[0] = btn1 // btn1 as the id from xml file

Однако имена кнопок из xml не работают в файле kotlin, как их использовать?

1 Ответ

2 голосов
/ 22 марта 2019

Предположим, у вас есть такой макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:visibility="visible"
              android:orientation="vertical">

    <Button android:id="@+id/btOne" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="one"/>
    <Button android:id="@+id/btTwo" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="two"/>
    <Button android:id="@+id/btThree" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="three"/>
</LinearLayout>

Сначала примените плагин kotlin extensions для синтаксического синтаксиса в вашем build.gradle с помощью

apply plugin: 'kotlin-android-extensions'

Затем вы можете просто инициализироватьмассив кнопок в вашем коде, выполнив:

val buttons = arrayOf(btOne, btTwo, btThree)

В противном случае, если вы не хотите использовать синтаксис kotlin, просто используйте старый синтаксис findviewbyid

val buttons = arrayOf(
            findViewById(R.id.btOne),
            findViewById(R.id.btTwo),
            findViewById<Button>(R.id.btThree)
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...