Ir ao conteúdo
  • Cadastre-se
GabrielaFerrari

AndroidSDK Buscar as informações na tela

Recommended Posts

Bom dia pessoal,
Eu quero adicionar um Searchview no meu aplicativo, pra quando eu ir na tela que mostra todos os produtos eu conseguir buscar pelo campo do modelo e o produto com esse modelo aparecer na tela pra mim...
Vi alguns videos na internet mas não consegui entender direito como posso fazer, estou iniciando meus estudos no android ainda :s
Alguém pode por favor me ajudar?

Segue o código da tela:
activity_listar_produtos.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.ListarProdutos">


<SearchView
android:layout_width="match_parent"
android:layout_height="50dp" />


<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#826e3e"
android:onClick="eventAtualizarProdutos"
android:text="Atualizar"
android:textColor="@android:color/background_light" />

<ListView
android:id="@+id/lsvProdutos"
android:layout_width="match_parent"
android:layout_height="wrap_content">

</ListView>


</LinearLayout>

 

Esse é o Adapter que criei de Listar Produtos:

AdapterListaProdutos.java:

 

package gabi.controleestoque.adapters;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Spinner;
import android.widget.TextView;

import java.util.List;

import gabi.controleestoque.R;
import gabi.controleestoque.model.Produto;

public class AdapterListaProdutos extends BaseAdapter {

private Context context;
private List<Produto> produtoList;

public AdapterListaProdutos(Context context, List<Produto> produtoList) {
this.context = context;
this.produtoList = produtoList;
}


//getCount = Tamanho da lista de produtos
@Override
public int getCount() {
return this.produtoList.size();

}

//getItem = pegar o item atraves da posição
@Override
public Object getItem(int posicao) {
return this.produtoList.get(posicao);
}

//getItemId = vamos também pegar a posição
@Override
public long getItemId(int posicao) {
return posicao;
}

//remove o item selecionado
public void removerProduto(int posicao){

this.produtoList.remove(posicao);
notifyDataSetChanged();
}


//getView = Pegar os componentes
@Override
public View getView(int posicao, View view, ViewGroup viewGroup) {
//carregar o layout
View v = View.inflate(this.context, R.layout.layout_produto, null);

TextView tvCorredor = (TextView) v.findViewById(R.id.tvCorredor);
TextView tvPrateleira = (TextView) v.findViewById(R.id.tvPrateleira);
TextView tvCaixa = (TextView) v.findViewById(R.id.tvCaixa);
TextView tvColecao = (TextView) v.findViewById(R.id.tvColecao);
TextView tvModelo = (TextView) v.findViewById(R.id.tvModelo);
TextView tvQuantidade = (TextView) v.findViewById(R.id.tvQuantidade);
TextView tvTamanho = (TextView) v.findViewById(R.id.tvTamanho);

//pegar os valores digitados
tvCorredor.setText(this.produtoList.get(posicao).getCorredor());
tvPrateleira.setText(String.valueOf(this.produtoList.get(posicao).getPrateleira()));
tvCaixa.setText(this.produtoList.get(posicao).getCaixa());
tvColecao.setText(this.produtoList.get(posicao).getColecao());
tvModelo.setText(this.produtoList.get(posicao).getModelo());
tvQuantidade.setText (String.valueOf(this.produtoList.get(posicao).getQuantidade()));
tvTamanho.setText(this.produtoList.get(posicao).getTamanho());

return v;
}
//atualiza a lista de produtos
public void atualizar(List<Produto>pProdutos){
this.produtoList.clear();
this.produtoList = pProdutos;
this.notifyDataSetChanged();
}
}

 

E esse é o meu listar produtos:

ListarProdutos.java:

 

package gabi.controleestoque.activities;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import gabi.controleestoque.R;
import gabi.controleestoque.adapters.AdapterListaProdutos;
import gabi.controleestoque.controller.ProdutoCtrl;
import gabi.controleestoque.dbHelper.ConexaoSQLite;
import gabi.controleestoque.model.Produto;

public class ListarProdutos extends AppCompatActivity {

//criar list view pra exibir na tela

private ListView lsvProdutos;
private List<Produto> produtoList;
private AdapterListaProdutos adapterListaProdutos;
private ProdutoCtrl produtoCtrl;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listar_produtos);


this.produtoCtrl = new ProdutoCtrl(ConexaoSQLite.getInstancia(ListarProdutos.this));

produtoList = produtoCtrl.getListaProdutosCtrl();

this.lsvProdutos = (ListView) findViewById(R.id.lsvProdutos);

this.adapterListaProdutos = new AdapterListaProdutos(ListarProdutos.this, this.produtoList);

this.lsvProdutos.setAdapter(this.adapterListaProdutos);

this.lsvProdutos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, final int posicao, long id) {

final Produto produtoSelecionado = (Produto) adapterListaProdutos.getItem(posicao);

AlertDialog.Builder janelaDeEscolha = new AlertDialog.Builder(ListarProdutos.this);

janelaDeEscolha.setTitle("Escolha:");
janelaDeEscolha.setMessage("O que deseja fazer com o produto selecionado?");

//Botão de cancelar

janelaDeEscolha.setNeutralButton("Cancelar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int id) {


dialogInterface.cancel();
}
});


//Botão de excluir

janelaDeEscolha.setNegativeButton("Excluir", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int id) {


boolean excluiu = produtoCtrl.excluirProdutoCTRL(produtoSelecionado.getId());
dialogInterface.cancel();

if(excluiu == true){


adapterListaProdutos.removerProduto(posicao);

Toast.makeText(ListarProdutos.this,"Produto excluido com sucesso",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ListarProdutos.this,"Erro ao excluir produto",Toast.LENGTH_SHORT).show();
}

}
});

//Botão de editar

janelaDeEscolha.setPositiveButton("Editar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int id) {

Bundle bundleDadosProdutos = new Bundle();

bundleDadosProdutos.putLong("id_produto", produtoSelecionado.getId());
bundleDadosProdutos.putString("corredor_produto", produtoSelecionado.getCorredor());
bundleDadosProdutos.putInt("prateleira_produto", produtoSelecionado.getPrateleira());
bundleDadosProdutos.putString("caixa_produto", produtoSelecionado.getCaixa());
bundleDadosProdutos.putString("colecao_produto", produtoSelecionado.getColecao());
bundleDadosProdutos.putString("modelo_produto", produtoSelecionado.getModelo());
bundleDadosProdutos.putInt("quantidade_produto", produtoSelecionado.getQuantidade());
bundleDadosProdutos.putString("tamanho_produto", produtoSelecionado.getTamanho());

Intent intentEditarProdutos = new Intent(ListarProdutos.this,EditarProdutos.class);
intentEditarProdutos.putExtras(bundleDadosProdutos);
startActivity(intentEditarProdutos);

}
});


janelaDeEscolha.create().show();


}
});


}

// Executa o evento clique no botao de atualizar
public void eventAtualizarProdutos (View view){
//chamar o update do adapterProduto
this.adapterListaProdutos.atualizar(this.produtoCtrl.getListaProdutosCtrl());
}
}

 

Queria digitar o modelo no campo de busca da tela de pesquisa e ele trazer pra mim na tela todos os produtos que foram cadastrados com esse modelo.

Agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×