Не удается отформатировать частичный текстовый вид или текст кнопки в Android Studio - PullRequest
0 голосов
/ 07 февраля 2020

Я использую Android Studio для создания приложения для изучения языка Engli sh, и я хочу сделать несколько букв на кнопке жирным шрифтом, но я не могу этого сделать. Например, я хочу, чтобы на кнопке было написано «Мне нравится bas кетбол», поскольку первый слог в баскетболе подчеркивается, когда мы произносим слово.

Однако я не могу заставить это работать. Вот мои строки. xml.

<string name="test">I like <b>bas</b>ketball</string>

А вот мои действия. xml.

    <Button
        android:id="@+id/test"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textAllCaps="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/test"
        android:textAllCaps="false" />

</LinearLayout>

Ни Button, ни TextView не распознают форматирование.

У меня будет более 400 кнопок, для которых потребуется выделение жирным шрифтом другого набора символов, поэтому я не хочу использовать расширяемые строки для кодирования этого.

Есть ли простое решение?

1 Ответ

0 голосов
/ 07 февраля 2020

1-й подход -

вам нужно обновить строку до <string name="test">I like &lt;b> bas&lt;/b>ketball.</string>, если вы используете строку из String. xml

, но вам нужно добавить приведенный ниже код в классе Activity для работы -

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
     textView.setText(Html.fromHtml(getString(R.string.test), Html.FROM_HTML_MODE_LEGACY));
}else{
    textView.setText(Html.fromHtml(getString(R.string.test));
}

2-й подход -

Добавьте приведенный ниже код в файл String.xml вверху

<?xml version="1.0" encoding="utf-8"?>

Затем добавьте свою строку в ресурсы -

<resources>
    <string name="test"><![CDATA[I like <b> bas</b>ketball]]></string>
</resources>

, а затем в классе активности установите текст HTML, как показано ниже -

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
     textView.setText(Html.fromHtml(getString(R.string.test), Html.FROM_HTML_MODE_LEGACY));
}else{
    textView.setText(Html.fromHtml(getString(R.string.test));
}

Надеюсь, это поможет.

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