Anko дает исключение AnkoException: идентификатор не установлен - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь научиться проектировать макет с Anko. Я установил макет, используя Anko, как показано ниже

relativeLayout {
        val counterTextView = textView {
            text = "0"
            textSize = 24f

        }
        button {
            onClick {
                count++
                counterTextView.text = count.toString()
            }
        }.lparams {
            below(counterTextView)
        }
    }

Мне просто нужен относительный макет с TextView и кнопкой под TextView.

Приведенный выше код выдает следующую ошибку

     Caused by: org.jetbrains.anko.AnkoException: Id is not set for android.widget.TextView{d8dedcd V.ED..... ......ID 0,0-0,0}
    at org.jetbrains.anko.RelativeLayoutLayoutParamsHelpersKt.below(RelativeLayoutLayoutParamsHelpers.kt:60)
    at com.example.app.MainActivity.onCreate(MainActivity.kt:29)
    at android.app.Activity.performCreate(Activity.java:6237)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)

Кто-нибудь знает, как это исправить?

1 Ответ

0 голосов
/ 29 августа 2018

Я думаю, что если вы хотите использовать relativeLayout params, вы должны создать идентификатор для просмотра, поэтому попробуйте это

relativeLayout {
    val counterTextView = textView {
        id = R.id.counterTextView // add this line
        text = "0"
        textSize = 24f

    }
    button {
        onClick {
            count++
            counterTextView.text = count.toString()
        }
    }.lparams {
        below(counterTextView)
    }
}

И вы должны создать ids.xml в папке значений

ids.xml

<resources>
    <item name="counterTextView" format="integer" type="id"/>
</resources>
...