Gostaria de criar um pop-up no meu app que permitisse ao usuário ajustar dinamicamente o tamanho da fonte dos Textviews disponíveis no meu app, e gostaria de manter salva a opção feita pelo usuário. Como posso fazer isso?
Gostaria de criar um pop-up no meu app que permitisse ao usuário ajustar dinamicamente o tamanho da fonte dos Textviews disponíveis no meu app, e gostaria de manter salva a opção feita pelo usuário. Como posso fazer isso?
Olá Lucas,
Não existe uma solução muito simples para esse problema. Você consegue alterar o tamanho de um TextView
dinamicamente usando o método setTextSize()
. Nesse caso, você pode fazer assim para alterar o tamanho:
TextView tv = (TextView) findViewById(R.id.campo_texto);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
Assim você poderia salvar a configuração do usuário em algum lugar e toda vez que fizesse um findViewById
você precisaria alterar o tamanho programaticamente de acordo com o tamanho escolhido pelo usuário.
Entendi. Mas minha dúvida é justamente sobre como salvar e recuperar essa configuração em cada alteração que o usuário fizer. Andei lendo a documentação do Android sobre Settings, mas ainda estou um pouco confuso. Você tem algum exemplo que possa elucidar melhor a minha dúvida?
Olá Lucas,
Para salvar configurações simples como essa que você apresentou, geralmente utilizamos a classe SharedPreferences
do próprio Android que representa um arquivo simples que consegue armazenar dados no formato chave/valor.
Para acessar o SharedPreferences
você pode usar o código a seguir:
SharedPreferences prefs = context.getSharedPreferences("config", Context.MODE_PRIVATE);
Agora que você tem uma referência para o SharedPreferences
, para gravar um valor você pode usar o código a seguir:
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("tamanho", 16);
editor.commit();
Finalmente, para ler os valores salvos, você pode usar o código abaixo:
int tamanho = prefs.getInt("tamanho", 16);
Entendi. Uma outra dúvida: como eu faço para referenciar nos xmls de layout o valor salvo nas Configurações?