Ошибка при ожидании объявления участника и Kotlin - PullRequest
0 голосов
/ 14 января 2020

Привет всем, я новичок в Java и Android, и я следую курсу Удеми.

Я следовал одному из руководств и следовал инструкциям в точности так, как он был показан, но по какой-то причине мой базовый код c получает ошибки. Мне пришлось импортировать библиотеку Kotlin, которую я понятия не имею, что это значит. Я провел некоторое исследование, сказав, что между ними есть какая-то связь.

Под моими переменными я получаю сообщение об ошибке «Ожидаемая декларация элемента» и «Val не может быть переназначен», когда я наводю курсор на следующую кнопку (внизу).

enter image description here

Может кто-нибудь помочь мне посоветовать, что делать?

Спасибо

Ответы [ 4 ]

1 голос
/ 14 января 2020

Вы используете Kotlin в коде, но используете синтаксис, такой как Java. Попробуйте изменить, как показано ниже:

Опция - 1: Удалить kotlinx.android.synthetic из import и использовать в качестве свойства.

//import kotlinx.android.synthetic.main.activity_main.*

private lateinit var nextButton: Button

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    nextButton = findViewById(R.id.nextButton)

    nextButton.setOnClickListener { view -> 

    }
}

Опция - 2 : Используйте kotlinx.android.synthetic и получите прямой доступ к идентификатору макета в качестве ссылки.

import kotlinx.android.synthetic.main.activity_main.*

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    //No need to declare as class variable
    nextButton.setOnClickListener { view -> 

    }
}
1 голос
/ 14 января 2020

Вы используете JAVA структуру кода внутри Kotlin файла. Сначала измените свой код в строке 10 с

private Button nextButton;

на

private lateinit var nextButton: Button

, что решит вашу первую проблему.

И val является неизменным объявлением переменных, измените его на var, и вы хороши для go. Надеюсь, что это полезно.

0 голосов
/ 15 января 2020

Надеюсь, что это может помочь вам

 private lateinit var nextButton: Button
 nextButton= findViewById(R.id.nextButton) as Button;
0 голосов
/ 14 января 2020

В kotlin в первую очередь вы должны ввести val, который нельзя изменить, и var, если вы измените переменную после. Затем имя переменной, а затем класс

lateinit var button:Button 

Сначала проверьте kotlin документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...