Передать значение переменной в url

Подскажите, каким образом можно передать переменную в URL

Значение переменной беру из editText: String a = word.getText().toString();

Допустим есть URL: String URL = " сайт.com/translation?text={здесь должна быть переменная a}&srcLang=1033


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

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

Если вы формируете строку вручную то можно сделать так:

String URL = "сайт.com/translation?text={" + a + "}&srcLang=1033"

Либо можно миновать переменную:

String URL = "сайт.com/translation?text={" + word.getText().toString() + "}&srcLang=1033"

Но я бы советовал еще добавить тогда проверку на наличие текста в поле для ввода чтобы предотвратить лишние переходы по ссылке. Так же если данный сайт будет стабильно тут находится то можно сделать шаблон в который вы будете отправлять только то что в поле. Делается это так:

<string name="url">сайт.com/translation?text={%1$s}&srcLang=1033</string> 

и дальше из активности просто передаем то что в поле после проверки:

String url = getResources().getString(R.string.url,word.getText().toString());

Так же можно использовать UriBuilder. Возьмем например такой адрес:

https://www.myawesomesite.com/turtles/types?type=1&sort=relevance#section-name

Чтобы сформировать его дальше нужно использовать такой код:

Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
    .authority("www.myawesomesite.com")
    .appendPath("turtles")
    .appendPath("types")
    .appendQueryParameter("type", "1")
    .appendQueryParameter("sort", "relevance")
    .fragment("section-name");
String myUrl = builder.build().toString();

Вот документация по UriBuilder.

→ Ссылка