Как передать строку из activity в GET-запрос?

В MainActivity есть EditText, в который пользователь пишет nickname:

<EditText
    android:id="@+id/nicknameEditText"
    android:hint="Введите игровое имя"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Как полученный текст передать в GET-запрос?

interface ApiRequest {
    @GET("bridge?version=5&platform=PC&player=${R.id.nicknameEditText}")
    fun herList() : Call<TestHero>
}

Я попробовал кустарным путём как в коде выше, получил ошибку. В поиске есть только передача данных между двумя и более activity. Подскажите, как это реализовать правильно?


Ответы (1 шт):

Автор решения: Vadik

В соответствии с документацией Retrofit, параметр в GET-запрос можно передать следующим образом:

interface ApiRequest {
    @GET("bridge?version=5&platform=PC")
    fun herList(@Query("player") player: String) : Call<TestHero>
}

Далее, находясь в Активити, берем EditText по id:

val nicknameView = findViewById<EditText>(R.id.nicknameEditText)

Достаем его содержимое:

val nickname = nicknameView.text.toString()

Наконец, вызываем метод интерфейса api, передавая nickname в качестве player:

api.herList(nickname)
→ Ссылка