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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?