Um ListView
no meu aplicativo tem muitos elementos de cadeia como name
, experience
, date of joining
, etc. Eu só quero fazer name
negrito. Todos os elementos da string estarão em um único TextView
.
meu XML:
<ImageView
android:id="@+id/logo"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/logo"
android:padding="5dp"
android:textSize="12dp" >
</TextView>
Meu código para definir o TextView do item ListView:
holder.text.setText(name + "\n" + expirience + " " + dateOfJoininf);
android
android-listview
Mosca doméstica
fonte
fonte
Respostas:
Digamos que você tenha uma
TextView
ligaçãoetx
. Você então usaria o seguinte código:fonte
var bss = new StyleSpan(Android.Graphics.TypefaceStyle.Bold);
etx.TextFormatted = sb;
Com base na resposta de Imran Rana, aqui está um método genérico reutilizável se você precisar aplicar
StyleSpan
s a váriosTextView
s, com suporte para vários idiomas (onde os índices são variáveis):Use-o da seguinte
Activity
maneira:strings.xml
Resultado:
Bem-vindo ao CompanyName
fonte
As respostas fornecidas aqui estão corretas, mas não podem ser chamadas em um loop porque o
StyleSpan
objeto é uma única extensão contígua (não um estilo que pode ser aplicado a várias extensões). ChamarsetSpan
várias vezes com o mesmo negritoStyleSpan
criaria um intervalo em negrito e apenas o moveria no intervalo pai.No meu caso (exibindo os resultados da pesquisa), eu precisava fazer todas as instâncias de todas as palavras-chave da pesquisa aparecerem em negrito. Isso é o que eu fiz:
Lembre-se de que o código acima não é inteligente o suficiente para ignorar o negrito duplo se uma palavra-chave for uma substring da outra. Por exemplo, se você pesquisar por "Peixe fi" dentro de "Peixes no mar fisty" , o "peixe" ficará em negrito uma vez e depois a parte "fi" . O bom é que, embora ineficiente e um pouco indesejável, não terá uma desvantagem visual, pois o resultado exibido ainda será
Peixes es na fi Mar sty
fonte
Você pode fazer isso usando Kotlin e
buildSpannedString
função de extensão decore-ktx
fonte
se você não sabe exatamente o comprimento do texto antes da parte do texto que deseja transformar em negrito, ou mesmo não sabe o comprimento do texto para ser em negrito, você pode usar facilmente as tags HTML como a seguir:
fonte
Estendendo a resposta de Frieder para apoiar a insensibilidade a casos e diacríticos.
fonte
Se você estiver usando a anotação @ srings / your_string, acesse o arquivo strings.xml e use a
<b></b>
tag na parte do texto que você deseja.Exemplo:
fonte
Eu recomendo usar o arquivo strings.xml com CDATA
Depois, no arquivo java:
fonte