O tipo EditText irá exigir a adição de imports na sua classe, bem como a annotation @BindView. Apenas use o recurso ALT+ENTER e siga em frente.
No onCreate desta Activity, logo abaixo o setContentView, você deve inicializar o ButterKnife para que ele faça as conversões corretas de código (aproveite para jogar fora o código velho do FloatingActionButton):
E é aqui que a magia acontece. Com muito menos repetição de código, os meus componentes estarão carregados nas variáveis locais que defini no trecho de código anterior à esse, permitindo o seu uso sem qualquer receio nos métodos de onClick dos botões, os quais faremos na sequência, também usando ButterKnife pra fazer o binding do método ao componente apropriado (quem já fez isso com Listeners vai ver muito valor aqui).
Primeiro, vamos programar o btnNovoOnClick (o floating button) para apenas limpar todos os campos do formulário, incluindo o id, sinalizando um novo cadastro (apenas coloque esse método no escopo da classe MainActivity.java):
Note a annotation @OnClick acima do método, que informa qual o id do componente que queremos mapear o click. Você pode inclusive colocar diversos ids para o mesmo método tratar, pode omitir o parâmetro View no método (como eu fiz) ou mesmo substituir o view pelo tipo correto do componente (pra evitar castings no código, embora eles ainda ocorram no código compilado).
Na sequência, vamos programar o btnBuscarOnClick: ele deve pegar o id que foi digitado pelo usuário e usar esse id como filtro para trazer os dados do usuário e preencher o formulário. Aqui, não iremos na API ainda, então faremos uma falsa busca por enquanto:
Quase finalizando, vamos programar, também de maneira fake, o click do nosso botão de excluir. A ideia aqui é que o usuário digite o id e clique em excluir, o app pede uma confirmação e avisa se conseguiu excluir ou não:
E por fim, o click do botão de salvar. Esse botão também é um pouquinho mais “esperto” que os outros, pois ele deve diferenciar o cadastro de um novo cliente de uma edição de um cliente já existente. Isso é feito analisando o campo id, que deve estar vazio ou com um número inferior a 1.
            Toast.makeText(this, "Não foi encontrado nenhum cliente com esse id para atualizar ou a atualização não foi permitida.", Toast.LENGTH_LONG).show();
Se você mandar este app executar agora e fazer alguns testes, verá os comportamentos esperados uma vez que ainda não estamos consumindo a API, o que faremos na próxima parte deste artigo usando Retrofit!

pior q foi a segunda rodada e o clube chegou na faixa de classificacao pra liberta e ganhou com o pe nas costas do atual bicampeao, mas vai chegar uma hora q comecarao as contusoes, perda bobas de pontos, principalmente por desatencao ou falta de pique, q acontece todo jogo no segundo tempo
mas eh soh para pra pensar q tem 6 meses de campeonato e que o clube se perder 1 jogador vai sentir mto mais falta do que clubes com elenco inxado, como os maloqueros
Não da pra entender isso, e o Santos também dormiu nessa se joga em SP da um grande arrecadação. Precisa de grana neste momento.
Boa jcmbastos, os métodos de medição de torcedores são todos questionáveis, independente do Instituto que mede, mas basta não ser burro pra notar que o Santos já dividiu o Maracanã com os grandes do rio e o Morumbi com os grandes da capital, portanto, não estamos atrás dos outros e se estiver não é muito atrás, acho que se aprovassem a eleição a distância chegaríamos fácil a 100.000 sócios assim como palmeiras e Inter, e teriamos de 3 a 4 milhoes todo mês sem precisar de patrocinio, isso é a independencia do clube