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);
}