Мога ли да подчертая текст в оформление за Android?

Как мога да дефинирам подчертан текст във файл xml за оформление на Android?

Решение

Това може да се постигне, ако използвате xml файл string resource, който поддържа HTML тагове като , и ``.


    This is an underline.

Ако искате да подчертаете нещо от кода, използвайте:

TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
Коментари (10)

Отговорът "приет" по-горе не работи (когато се опитате да използвате низ като textView.setText(Html.fromHtml(String.format(getString(...), ...))).

Както е посочено в documentations, трябва да евакуирате (кодирана в html същност) отварящата скоба на вътрешните тагове с <, например резултатът трябва да изглежда така:


    This is an <u>underline</u>.

След това в кода си можете да зададете текста с:

TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Коментари (6)

Съдържание на файла Strings.xml:


     This is an underline. 

Файлът Layout xml трябва да използва горепосочения ресурс от низове с посочените по-долу свойства на текстовия изглед, както е показано по-долу:

Коментари (1)