Передать параметр для функции в Kotlin - PullRequest
0 голосов
/ 19 февраля 2019

Вот моя активность:

class PlayerDetails : AppCompatActivity(), View.OnClickListener {
    ...
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_player_details)
        val intent = getIntent()
        numOfPlayers = intent.getIntExtra("number_of_players", 1)
        next_details.setOnClickListener(this)
    }

    override fun onClick(v: View?) {
        for (i in 1..numOfPlayers) {
                ...
                nextUser()

            } else {
                blankFields()
            }

        }
    }
    private fun nextUser() {

    }

}

Как передать значение i в цикле for в nextUser()?

Я пытался nextUser(num: Int = i), но это нене работает.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

Ваш следующий пользователь должен выглядеть следующим образом:

private fun nextUser(i: Int = DEFAULT_VALUE) {

}

DEFAULT_VALUE является необязательным, если вы выберете, вы можете удалить = DEFAULT_VALUE из определения вашей функции.В этом случае вам всегда нужно передавать значение при вызове nextUser.

Затем из цикла for вы можете передать значение i в nextUser следующим образом.

for (i in 1..numOfPlayers) {
    ...
    nextUser(i)

} else {
    blankFields()
}
0 голосов
/ 20 февраля 2019

Функция NextUser() должна принимать один входной параметр.

Теперь код выглядит как

for(i until numOfPlayers) {
   nextuser(i)
}
else {
   blankFields()
}

Теперь nextUser выглядит так.

nextUser(value : Int) {
    TODO("perform the action")
}
0 голосов
/ 19 февраля 2019

Измените ваш метод так, чтобы он принимал параметр

private fun nextUser(num: Int) { }

И вызывал функцию вот так

for (i in 1..numOfPlayers) { ... nextUser(i) } else { blankFields() } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...