Контекстное меню: я не понимаю некоторые строки примера кода. Котлин - PullRequest
0 голосов
/ 08 сентября 2018

Я занимаюсь разработкой Android на Kotlin, и у меня есть этот пример кода: https://kotlintutorialspoint.wordpress.com/2018/03/30/context-menu-using-kotlin-in-android/ Я не понимаю, что происходит, когда мы используем эти строки кода (что делает kotlin?):

val info = item.menuInfo as AdapterContextMenuInfo

val listPosition = info.position

Я только знаю, что используя эти строки, мы получим «val name», которое используется в Toast.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Эти строки не делают ничего особенного. Они просто создают новые константы и присваивают им значения.

Первая строка создает константу с именем info и имеет значение item.menuInfo as AdapterContextMenuInfo. Теперь, что такое item.menuInfo? Это объект, который содержит позицию выбранной опции, как мы позже сошлемся на info.position во второй строке. Во второй строке мы создали константу с именем listPosition, в которой хранится значение info.position. Затем мы используем этот индекс, чтобы узнать, какая опция была выбрана с помощью array.

Эти строки могут быть объединены в один оператор, но менее читаемый:

Toast.makeText(
    this@MainActivity, " " + selectedItemTitle + " " +
    array[(item.menuInfo as AdpaterContextMenuInfo).position]
    , Toast.LENGTH_LONG).show()

Таким образом, 3 строки просто показывают вам, как получить название выбранного элемента более читабельным способом, чем записать их все в одном утверждении.

0 голосов
/ 08 сентября 2018

Вероятно, вам следует ознакомиться с основами Kotlin, прежде чем вы начнете в нем что-либо делать.

Это Java-эквивалент этих двух строк:

final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
final int listPosition = info.position;

Kotlin нетребует явного объявления типа и может определить, какой должна быть переменная, поэтому обычно достаточно val variableName = whatever.

Kotlin также имеет другой синтаксис для приведения объектов, как вы можете видеть, сравнивая его с Java.Опять же, вы должны прочитать документы Kotlin, прежде чем пытаться выполнить проект.

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