Hoje iremos continuar o projeto da calculadora, que começamos no laboratório passado. 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.
5. Implemente uma classe derivada de BaseAdapter para mostrar o histórico
na ListView. Use uma TextView com uma fonte monoespaçacada
(veja o atributo Typeface da TextView) para cada linha, e alinhe o
texto à direita. Se a operação é uma das quatro operações, a linha tem
o operando, com espaços à esquerda para completar nove caracteres, um
espaço, o operador e dez espaços. Se a operação for
reset, ela tem oito espaços, 0 C, e mais dez espaços. Se a operação for igual,
ela tem o operando com espaços à esquerda para completar nove caracteres,
um espaço, “=”, outro espaço, e o resultado com espaços à esquerda para
completar nove caracteres.
O prazo de envio será 21/05. As instruções para envio serão dadas no próximo laboratório, junto com as tarefas restantes.
Última Atualização: 2016-05-18 10:58