Livro 2 - Projeto da Mini-Calculadora
7. Adicionado a Lógica da Aplicação
7.3. Programando a Inicialização da Aplicação
No ato de criação de uma Activity é invocado o método onCreate. É nesse método que devem ser declaradas as configurações iniciais do aplicativo, comumente a ligação com os elementos na tela e configuração do tratamento de eventos.
Para obter acesso a um elemento da tela, invoca-se o método findViewById, que através de seu parâmetro retorna uma referência (objeto) do referido elemento na tela. Nesse ponto, a classe R ocupa um papel importante, pois ela consegue através do id da view localizar corretamente o elemento na tela e retornar sua refência.
No que tange o tratamento de eventos, o aplicativo vai precisar instânciar classes anônimas para dois tipos de interfaces: TextWatcher (usada para reagir na inserção de textos) e SeekBarListener (reage ao movimento na barra de progresso). Para a inclusão de um tratamento de eventos no EditText, adicionamos a classe anônima (que será criada futuramente) que implementa um TextWatcher com o método addTextChangedListener(). No tratamento de eventos para a SeekBar, adicionamos a classe anônima (que será criada futuramente também) que implementa um SeekBarListener com o método setOnSeekBarChangeListener ().
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//configurando as referências as TextViews da tela
amountTextView = findViewById(R.id.amountTextView);
percentTextView = findViewById(R.id.percentTextView);
tipTextView = findViewById(R.id.tipTextView);
totalTextView = findViewById(R.id.totalTextView);
//configura os valores iniciais da taxa e total
tipTextView.setText(currecyFormat.format(0));//R$ 0,00 U$ 0.00
totalTextView.setText(currecyFormat.format(0));
//configura o tratamento de eventos para a caixa de texto
EditText amountEditText = findViewById(R.id.amountEditText);
amountEditText.addTextChangedListener(amountEditTextWatcher);
//configura o tratamento de eventos para a barra seekBar
SeekBar percentSeekBar = findViewById(R.id.percentSeekBar);
percentSeekBar.setOnSeekBarChangeListener(seekBarListener);
}