0

Formate strings de texto com databinding

Francisco Rasia
Francisco Rasia

Que tal formatar dados e strings de texto de maneira rápida e sem depender de funções de extensão? Essa é mais uma das possibilidades que o componente DataBinding oferece.

Nesse artigo, o quarto da série sobre fluxo de informações entre elementos de um app Android, vamos utilizar uma string de formatação para apresentar dados de maneira mais informativa.



🚀Liguem seus motores!

Esse passo-a-passo pressupõe que a função DataBinding já está habilitada no seu app. Se não estiver, você pode seguir este guia para habilitá-la.


1. Criar uma string de formatação

Crie um string de formatação no arquivo strings.XML; Aqui nós aplicamos a técnica de interpolação de strings, adicionando placeholders para os dados.

Nesse exemplo quero uma string que indica a pontuação em um jogo, recebendo um número (Integer). Para isso, vou adicionar o placeholder '%d', que espera um valor numérico.

<resources>
  //...
  <string name="score_format">Pontuação: %d ponto(s)</string>
</resources>


2. Vincular a string de formatação com o TextView

Agora, modifique o parâmetro 'text' do TextView para aplicar a string de formatação. Como nos outros casos de databinding, coloque uma expressão começando com '@{}', mas com uma diferença importante: dentro da expressão use '@string/' para chamar a string de formatação:


<TextView
   //...
    android:text="@{@string/score_format()}"
    //.. />


O último passo é fazer o binding com o ViewModel, passando a variável que queremos observar dentro dos parênteses da string:


<TextView
   //...
    android:text="@{@string/score_format(mainViewModel.score)}"
    //.. />


...e é isso! Como nos outros exemplos, não precisamos nos preocupar em acessar o campo value da LiveData porque o componente DataBinding se ocupa dessas conversões.


🛸Um exemplo prático

É mais fácil entender todos esses passos com um exemplo prático. Vou utilizar como exemplo o app Anagrama.


💻 Repositório no github: https://github.com/chicorasia/anagrama

Use o commit `fa6bf7b9` e a branch `main`.

Confira o passo-a-passo no vídeo: 💊Formatar strings com databinding

- https://youtu.be/0709cmNFdYs


🪐Conclusão

Nesse artigo vimos como formatar strings rapidamente e de maneira simples usando o Databinding no Android com Kotlin.


🌌Para saber mais

A Clarified String Formatting Cheatsheet

Playlist: Databinding 📼


📷

Photo by Raphael Schaller on Unsplash



0
0

Comentários (2)

0
Isaias Bueno

Isaias Bueno

19/06/2021 12:45

Vou conferir! Muito obrigado pelo excelente conteúdo.

0
J

Joyna Luiz

19/06/2021 08:21

Gostei

Arquiteto, urbanista, desenvolvedor Java & Android e criador em chefe na chicorialabs.com.br

Brasil