6 - CadastroCarros

Top  Previous  Next

Tela

 

CadastroCarros.java

 

package com.bancofull;

 

import java.util.List;

 

import android.app.ListActivity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ListView;

 

import com.bancofull.Carro.Carros;

 

/**

* Activity que demonstra o cadastro de carros:

* - ListActivity: para listar os carros - RepositorioCarro para salvar os dados no banco - Carro

*/

public class CadastroCarros extends ListActivity {

 protected static final int INSERIR_EDITAR = 1;

 protected static final int BUSCAR = 2;

 

 public static RepositorioCarro repositorio;

 

 private List<Carro> carros;

 

 @Override

 public void onCreate(Bundle icicle) {

         super.onCreate(icicle);

         repositorio = new RepositorioCarroScript(this);

         atualizarLista();

 }

 

 protected void atualizarLista() {

         // Pega a lista de carros e exibe na tela

         carros = repositorio.listarCarros();

 

         // Adaptador de lista customizado para cada linha de um carro

         setListAdapter(new CarroListAdapter(this, carros));

 }

 

 @Override

 public boolean onCreateOptionsMenu(Menu menu) {

         super.onCreateOptionsMenu(menu);

         menu.add(0, INSERIR_EDITAR, 0, "Inserir Novo").setIcon(R.drawable.novo);

         menu.add(0, BUSCAR, 0, "Buscar").setIcon(R.drawable.pesquisar);

         return true;

 }

 

 @Override

 public boolean onMenuItemSelected(int featureId, MenuItem item) {

         // Clicou no menu

         switch (item.getItemId()) {

         case INSERIR_EDITAR:

                 // Abre a tela com o formulário para adicionar

                 startActivityForResult(new Intent(this, EditarCarro.class), INSERIR_EDITAR);

                 break;

         case BUSCAR:

                 // Abre a tela para buscar o carro pelo nome

                 startActivity(new Intent(this, BuscarCarro.class));

                 break;

         }

         return true;

 }

 

 @Override

 protected void onListItemClick(ListView l, View v, int posicao, long id) {

         super.onListItemClick(l, v, posicao, id);

         editarCarro(posicao);

 }

 

 // Recupera o id do carro, e abre a tela de edição

 protected void editarCarro(int posicao) {

         // Usuário clicou em algum carro da lista

         // Recupera o carro selecionado

         Carro carro = carros.get(posicao);

         // Cria a intent para abrir a tela de editar

         Intent it = new Intent(this, EditarCarro.class);

         // Passa o id do carro como parâmetro

         it.putExtra(Carros._ID, carro.id);

         // Abre a tela de edição

         startActivityForResult(it, INSERIR_EDITAR);

 }

 

 @Override

 protected void onActivityResult(int codigo, int codigoRetorno, Intent it) {

         super.onActivityResult(codigo, codigoRetorno, it);

 

         // Quando a activity EditarCarro retornar, seja se foi para adicionar vamos atualizar a lista

         if (codigoRetorno == RESULT_OK) {

                 // atualiza a lista na tela

                 atualizarLista();

         }

 }

 

 @Override

 protected void onDestroy() {

         super.onDestroy();

         // Fecha o banco

         repositorio.fechar();

 }

}