Como posso definir o texto underlined em um arquivo xml
de layout do Android?
Ele pode ser alcançado se você estiver utilizando um arquivo **string resource*** xml, que suporta tags HTML como <b></b>
, <i></i>
e <u></u>
.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Se você quiser sublinhar algo do uso do código:
TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
O "aceito" a resposta acima faz **NÃO*** funcionar (quando você tenta utilizar a string como textView.setText(Html.fromHtml(String.format(getString(...), ...)))
.
Como indicado em documentações você deve escapar (entidade codificada em html) abrindo colchetes das tags internas com <
, por exemplo, o resultado deve ser parecido:
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Depois no seu código você pode definir o texto com:
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Conteúdo do arquivo Strings.xml:
<resource>
<string name="my_text">This is an <u>underline</u>.</string>
</resources>
O layout do arquivo xml deve usar o recurso de string acima com as propriedades de visualização de texto abaixo, como mostrado abaixo:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/my_text"
android:selectAllOnFocus="false"
android:linksClickable="false"
android:autoLink="all"
/>