O último projeto que vocês irão desenvolver será uma extensão da calculadora Android feita em sala de aula. Vocês irão substituir o modelo usado pelo modelo da calculadora tradicional estendida com a memória que vocês fizeram no laboratório 6, e irão adicionar a opção de usar o modelo da calculadora RPN também desenvolvido no laboratório 6.
Baixe o projeto da calculadora. Você deve adicionar uma nova fileira de botões acima da primeira fileira: M+
, M-
, MR
, e MC
, correspondendo às quatro funções de memória da calculadora do laboratório 6. Para fazer esses quatro botões funcionaram você irá substituir o modelo da calculadora em CalculadoraAndroid
pelo que vocês desenvolveram (ou adicionar as mesmas funcionalidades ao modelo atual). Teste a calculadora com o modelo da calculadora RPN, trocando o modelo usado.
Agora colocaremos uma funcionalidade de histórico na calculadora, mudando primeiro o modelo e depois a visão.
1. O histórico da calculadora mostra algumas operações que o usuário fez. Toda vez que ele clica os botões +
, -
, *
, /
, C
ou =
uma nova entrada é adicionada no histórico. Crie uma classe Operacao
para representar uma entrada no histórico, contendo um operando (um inteiro), um operador (uma string) e um resultado (um inteiro). Defina um construtor para essa classe.
2. Adicione uma lista de operações ao modelo. Toda vez que uma das quatro operações aritméticas, a operação reset
ou a operação igual
for feita você deve adicionar uma nova operação à lista; o operando é o número que estava no display no momento da operação, o operador é o botão correspondente, e o resultado é o número que está no display depois da operação ser feita.
3. Adicione um método limpa
ao modelo que apaga todas as entradas do histórico de operações.
4. Mude o layout da calculadora para incluir espaço para o histórico. A tela ficará dividida em duas metades: na metade da esquerda ficará a interface atual da calculadora, na metade da direita ficará uma ListView
com as entradas do histórico. Use um LinearLayout
horizontal e use o atributo android:layout_weight="1"
tanto para o TableLayout
quanto para ListView
.
5. Implemente uma classe derivada de BaseAdapter
para mostrar o histórico na ListView
. Para o layout de cada item, use um LinearLayout
horizontal com três TextView
, o primeiro com peso (layout_weigth
) 9 e alinhado à direita, contendo o operando, o segundo com peso 2 e centralizado, contendo a operação, e o terceiro com peso 9 e também alinhado à direita, contendo o resultado. O mais fácil é definir um arquivo item.xml
com esse layout e inflar ele do mesmo modo que é feito no projeto BuscaTwitter
.
6. Faça a calculadora ter dois layouts, o atual para se ela estiver sendo usada em modo paisagem, e outro em que o histórico de operações fica na metade de baixo da tela, se ela estiver sendo usada em modo retrato. Para isso coloque o novo arquivo .xml
do layout em uma nova pasta layout-port
ao lado da pasta layout
atual.
Use o esse link para enviar o Laboratórios 10. O prazo para envio é sexta-feira, dia 19/12/2016.
Última Atualização: 2016-12-09 11:49