GabrielaFerrari
Membro Júnior-
Posts
2 -
Cadastrado em
-
Última visita
-
AdrianoSiqueira começou a seguir GabrielaFerrari
-
Bom dia, Estou desenvolvendo um aplicativo e dentro da tela de listagem de produtos cadastrados, queria colocar um searchview para nessa mesma tela me mostrar o produto que quero. Andei olhando alguns tutorias no Google, porém, ao digitar na barra de busca o que quero, ele não me retorna nada e não sei o que estou fazendo de errado. Teria alguma maneira mais fácil de colocar um searchview nessa minha listview pra me retornar o modelo digitado? Pois eu fiz dessa forma, mas não está buscando nenhum modelo: 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); //filtrar SearchView searchView = findViewById(R.id.searchview); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextChange(String newText) { adapterListaProdutos.filtrar(newText); return false; } @Override public boolean onQueryTextSubmit(String query) { return true; } }); 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()); } } Muito obrigada!
-
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á!
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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