Júnior Kabashima
- Posts no fórum: 2
29/07/2015, 21:42:59 via Web
29/07/2015 21:42:59 via Web
Amigos, meu app nao está listando e ja tentei procurar o erro mas nao consigo. Talvez seja problema no banco de dados criado. Alguem pode me ajudar? preciso entregar o projeto hoje, se alguém puder rodar o código eu envio via email, o projeto inteiro! DESDE JÁ AGRADEÇO!!
package kabashima.materiaisdeconstrucaoconcept;
import android.app.AlertDialog;
import android.database.SQLException;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.*;
import android.widget.*;
import android.content.*;
import android.database.sqlite.*;
import android.database.*;
import android.text.Editable;
import android.text.TextWatcher;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.BancoDeDados;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.RepositorioEstoque;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.entidades.Produto;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.entidades.app.MessageBox;
public class EstoqueProdutos extends ActionBarActivity implements View.OnClickListener, AdapterView.OnItemClickListener{
private ImageButton btnAdicionar;
private EditText edtPesquisa;
private ListView lstProdutos;
private ArrayAdapter<Produto> adpEstoque;
private BancoDeDados bancodedados;
private SQLiteDatabase conn;
private RepositorioEstoque repositorioEstoque;
public static final String PAR_PRODUTO = "PRODUTO";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.estoqueprodutos);
btnAdicionar = (ImageButton)findViewById(R.id.btnAdicionar);
edtPesquisa = (EditText)findViewById(R.id.edtPesquisa);
lstProdutos = (ListView)findViewById(R.id.lstProdutos);
btnAdicionar.setOnClickListener(this);
lstProdutos.setOnItemClickListener(this);
try{
bancodedados = new BancoDeDados(this);
conn = bancodedados.getWritableDatabase();
repositorioEstoque = new RepositorioEstoque(conn);
adpEstoque = repositorioEstoque.buscaEstoque(this);
lstProdutos.setAdapter(adpEstoque);
FiltraDados filtraDados = new FiltraDados(adpEstoque);
edtPesquisa.addTextChangedListener(filtraDados);
}
catch(SQLException ex)
{
MessageBox.show(this, "Erro", "Erro ao criar o banco: " + ex.getMessage());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (conn != null){
conn.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_estoque_produtos, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view) {
Intent in = new Intent(this, CadastrarProdutos.class);
startActivityForResult(in,0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
adpEstoque = repositorioEstoque.buscaEstoque(this);
lstProdutos.setAdapter(adpEstoque);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Produto produto = adpEstoque.getItem(position);
Intent in = new Intent(this, CadastrarProdutos.class);
in.putExtra(PAR_PRODUTO, produto);
startActivityForResult(in,0);
}
private class FiltraDados implements TextWatcher
{
private ArrayAdapter<Produto> arrayAdapter;
private FiltraDados(ArrayAdapter<Produto> arrayAdapter)
{
this.arrayAdapter = arrayAdapter;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
arrayAdapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
}
}
Classe CadastrarProdutos
public class CadastrarProdutos extends ActionBarActivity {
private EditText edtNome;
private EditText edtMarca;
private EditText edtLoja;
private EditText edtEstoque;
private EditText edtValor;
private BancoDeDados bancodedados;
private SQLiteDatabase conn;
private RepositorioEstoque repositorioEstoque;
private Produto produto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastrarprodutos);
edtNome = (EditText) findViewById(R.id.edtNome);
edtMarca = (EditText) findViewById(R.id.edtMarca);
edtLoja = (EditText) findViewById(R.id.edtLoja);
edtEstoque = (EditText) findViewById(R.id.edtEstoque);
edtValor = (EditText) findViewById(R.id.edtValor);
Bundle bundle = getIntent().getExtras();
if ((bundle != null)&&(bundle.containsKey(EstoqueProdutos.PAR_PRODUTO)))
{
produto = (Produto)bundle.getSerializable(EstoqueProdutos.PAR_PRODUTO);
preencheDados();
}
else
produto = new Produto();
try{
bancodedados = new BancoDeDados(this);
conn = bancodedados.getWritableDatabase();
repositorioEstoque = new RepositorioEstoque(conn);
}
catch(SQLException ex)
{
MessageBox.show(this, "Erro", "Erro ao criar o banco: " + ex.getMessage());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (conn != null){
conn.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_cadastrar_produtos, menu);
if (produto.getId() !=0)
menu.getItem(1).setVisible(true);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.mini_acao1:
salvar();
finish();
break;
case R.id.mini_acao2:
excluir();
finish();
break;
}
return super.onOptionsItemSelected(item);
}
private void preencheDados(){
edtNome.setText(produto.getNome());
edtMarca.setText(produto.getMarca());
edtLoja.setText(produto.getLoja());
edtEstoque.setText(produto.getEstoque());
edtValor.setText(produto.getValor());
}
private void excluir() {
try {
repositorioEstoque.excluir( produto.getId() );
} catch (Exception ex)
{
MessageBox.show(this, "Erro", "Erro ao excluir os dados: " + ex.getMessage());
}
}
private void salvar() {
try {
produto.setNome(edtNome.getText().toString());
produto.setMarca(edtMarca.getText().toString());
produto.setLoja(edtLoja.getText().toString());
produto.setEstoque(edtEstoque.getText().toString());
produto.setValor(edtValor.getText().toString());
if(produto.getId() == 0)
repositorioEstoque.inserir(produto);
else
repositorioEstoque.alterar(produto);
}
catch(Exception ex)
{
MessageBox.show(this, "Erro", "Erro ao salvar os dados: " + ex.getMessage());
}
}
}
Classe RepositorioEstoque
public class RepositorioEstoque {
private SQLiteDatabase conn;
public RepositorioEstoque(SQLiteDatabase conn) {
this.conn = conn;
}
public ContentValues preencheContentValues(Produto produto) {
ContentValues values = new ContentValues();
values.put(Produto.NOME, produto.getNome());
values.put(Produto.MARCA, produto.getMarca());
values.put(Produto.LOJA, produto.getLoja());
values.put(Produto.ESTOQUE, produto.getEstoque());
values.put(Produto.VALOR, produto.getValor());
return values;
}
public void excluir(long id){
conn.delete(Produto.TABELA, " _id = ? ", new String[]{ String.valueOf( id ) });
}
public void alterar(Produto produto) {
ContentValues values = preencheContentValues(produto);
conn.update(Produto.TABELA, values, " _id = ? ",new String[]{String.valueOf( produto.getId())} );
}
public void inserir(Produto produto){
ContentValues values = preencheContentValues(produto);
conn.insertOrThrow(Produto.TABELA, null, values);
}
public ProdutoArrayAdapter buscaEstoque(Context context)
{
ProdutoArrayAdapter adpEstoque = new ProdutoArrayAdapter(context, android.R.layout.simple_list_item_1);
Cursor cursor = conn.query(Produto.TABELA,null,null,null,null,null,null);
if (cursor.getCount() > 0)
{
cursor.moveToFirst();
do {
Produto produto = new Produto();
produto.setId(cursor.getLong(cursor.getColumnIndex(Produto.ID )) );
produto.setNome( cursor.getString(cursor.getColumnIndex(Produto.NOME)) );
produto.setMarca( cursor.getString(cursor.getColumnIndex(Produto.MARCA)) );
produto.setLoja( cursor.getString(cursor.getColumnIndex(Produto.LOJA)) );
produto.setEstoque( cursor.getString(cursor.getColumnIndex(Produto.ESTOQUE)) );
produto.setValor( cursor.getString(cursor.getColumnIndex(Produto.VALOR)) );
adpEstoque.add(produto);
} while (cursor.moveToNext());
}
return adpEstoque;
}
}
Classe Produto
public class Produto implements Serializable{
public static String TABELA = "ESTOQUEPRODUTOS";
public static String ID = "_id";
public static String NOME = "NOMEPRODUTO";
public static String MARCA = "MARCA";
public static String LOJA = "LOJA";
public static String ESTOQUE = "ESTOQUE";
public static String VALOR = "VALOR";
private long id;
private String nome;
private String marca;
private String loja;
private String estoque;
private String valor;
public Produto(){
id=0;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getLoja() {
return loja;
}
public void setLoja(String loja) {
this.loja = loja;
}
public String getEstoque() {
return estoque;
}
public void setEstoque(String estoque) {
this.estoque = estoque;
}
public String getValor() {
return valor;
}
public void setValor(String valor) {
this.valor = valor;
}
@Override
public String toString(){
return nome + " " + marca;
}
}
Classe ProdutoArrayAdapter
package kabashima.materiaisdeconstrucaoconcept;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.entidades.Produto;
public class ProdutoArrayAdapter extends ArrayAdapter<Produto>{
private int resource = 0;
private LayoutInflater inflater;
private Context context;
public ProdutoArrayAdapter(Context context, int resource)
{
super(context, resource);
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.resource = resource;
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = null;
ViewHolder viewHolder = null;
if (convertView == null)
{
viewHolder = new ViewHolder();
view = inflater.inflate(resource, parent, false);
viewHolder.txtCor = (TextView)view.findViewById(R.id.txtCor);
viewHolder.txtNome = (TextView)view.findViewById(R.id.txtNome);
viewHolder.txtMarca = (TextView)view.findViewById(R.id.txtMarca);
view.setTag(viewHolder);
convertView = view;
}
else
{
viewHolder = (ViewHolder)convertView.getTag();
view = convertView;
}
Produto produto = getItem(position);
if (produto.getNome().toUpperCase().startsWith("A") )
viewHolder.txtCor.setBackgroundColor( context.getResources().getColor(R.color.azul) );
else
if (produto.getNome().toUpperCase().startsWith("B"))
viewHolder.txtCor.setBackgroundColor(context.getResources().getColor(R.color.vermelho));
else
viewHolder.txtCor.setBackgroundColor(context.getResources().getColor(R.color.color1));
viewHolder.txtNome.setText(produto.getNome());
viewHolder.txtMarca.setText(produto.getMarca());
return view;
}
static class ViewHolder
{
TextView txtCor;
TextView txtNome;
TextView txtMarca;
}
}