Problema de listagem,o app nao está listando[AndroidStudio]

  • Respostas:1
Júnior Kabashima
  • Posts no fórum: 2

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;
}

}

Responder
Júnior Kabashima
  • Posts no fórum: 2

29/07/2015, 21:43:25 via Web

Os imports foram feitos corretamente, tirei so pq tinha quer dar vários espaços

Responder