Android Studio & Kotlin: неразрешенная ссылка: контекст - PullRequest
0 голосов
/ 19 марта 2019

Я пытался решить эту проблему сотнями способов:

class MainActivity : AppCompatActivity() {

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

        val dm = DataManager()
        val adapterCourses = ArrayAdapter<CourseInfo>(context:  this,
                    android.R.layout)

но в ArrayAdapter<CourseInfo>(context: this, android.R.layout) я получаю неразрешенную ссылку: контекст , и я понятия не имею, почему.

Версия Android Studio: 3.3.2 Котлин версия: 1.3.21

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

1 Ответ

0 голосов
/ 19 марта 2019

Столбец в Kotlin используется для некоторых вещей, но не при передаче именованных аргументов.Синтаксис для передачи именованного параметра: parameterName = parameterValue.

Когда вы пишете context = this во время передачи параметра, вы просто ссылаетесь на параметр context вызываемой функции, явно говоря, чтоthis должен соответствовать этому параметру context.Это не очень полезно в этом случае, если вы не хотите быть очень явным.

Полезность использования именованных аргументов возникает, когда вы имеете дело с необязательными параметрами или когда вы передаете параметры не по порядку.
Например,

// DECLARATION of function abc
fun abc(s: String = "", i: Int = 0)

// USAGE of function abc passing only an Int
abc(i = 314)

Функция abc имеет два параметра и значение по умолчанию.В этом случае вы можете избежать передачи любого параметра, если у вас все в порядке с настройками по умолчанию. Но , если вы хотите передать только i, вы можете сделать это, указав его имя, как это сделано в примере.

Аналогично, вы можете передать параметры не по порядку,в этом случае вы будете делать:

abc(i = 314, s = "something")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...