(41) 9225-6319
contato@felipemarques.com.br

Android Spinner Customizado: Com ícone + informações do banco de dados Sqlite

Bom dia pessoal,

Neste post, vou mostrar de forma fácil como se faz para customizar um objeto spinner, adicionando a ele um ícone e trazendo os dados de um banco de dados.
Vou ser objetivo, então suponho que você ja tenha seu projeto Android iniciado e funcionando e que você apenas queira adicionar um spinner customizado.

[Update 04/01/2014]
Veja o novo tutorial com melhorias.

Android Spinner customizado com icone e sqlite

Android Spinner customizado com icone e sqlite

Primeiramente separei os codigos que fazem parte da instanciação dos objetos do android e alguns objetos por mim criados segue abaixo a classe:

public class ClienteSpinnerAdapter {

public static final SimpleAdapter getAdapter(Context ctx){

ClienteModel clienteModel = new ClienteModel(ctx);
List clientes = clienteModel.getListaClientes();

ArrayList<HashMap<String, String>> alist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();

for(int i=0; i < clientes.size(); i++){
Log.i(Global.LOG, clientes.get(i).getNomeFantasia());

map = new HashMap<String,String>();
map.put("clienteid", clientes.get(i).getId().toString());
map.put("nomefantasia", clientes.get(i).getNomeFantasia());

alist.add(map);
}

SimpleAdapter simpleAdapter = new SimpleAdapter(
ctx,
alist,
R.layout.spinner_cliente_item,
new String[] {
"clienteid",
"nomefantasia"
},
new int[] {
R.id.SpinnerClienteItem_id,
R.id.SpinnerClienteItem_nomefantasia
}
);

return simpleAdapter;

}

}

Agora segue o xml utilizado no layout customizado do spinner ( R.layout.spinner_cliente_item)

<!--?xml version="1.0" encoding="utf-8"?-->
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
&gt;




Epor fim o codigo que faz a chamada da do método que adapta o layout

Spinner spinnerClientes = (Spinner) dialog.findViewById(R.id.MainMenuActivity_dialog_SpinnerClientes);
spinnerClientes.setAdapter(ClienteSpinnerAdapter.getAdapter(getApplicationContext()));
spinnerClientes.setPrompt("Selecione um cliente");

Então é isso pessoal, espero ter ajudado, porque quando pesquisei sobre isso, somente achei um monte de posts que falavam em construir um adapter para o Spinner, mas eu achei melhor utilizar o SimpleAdapter do próprio Android SDK

Até o próximo post.

Sobre o autor
Felipe Marques é Consultor e Analista de Sistemas Web e Mobile. Mais de 10 anos de experiência.
  1. Bernardo Reply

    Que merda de tutorial, um monte de método sem mostrar como funciona, procure se ligar!

    • felipe Reply

      Pra começar não é um tutorial, é uma dica, não to aqui pra dar aula pra ninguém. Se você não consegue entender como funciona vai estudar, e corra atrás por conta própria!!!

  2. Allyson Jeronimo Reply

    Vlw amigo pelo post. Tava precisando aqui dessa ajuda. Muito útil e objetivo. =)

  3. Renan Reply

    Vlw amigo! Belo Post! Muito obrigado! MUIIIITO ÚTIL!!!

  4. Jessica Reply

    Olá, gostei do post, porém me surgiu a dúvida, como chamar valores vindos do banco de dados através do spinner?
    Digamos que seja 2 Spinners a Spinner Cidade com várias cidades: CidadeA, CidadeB… e outra Spinner Farmacia com varias Farmacias: FarmaciaA, FarmaciaB…
    Tipo selecionando “CidadeB” do Spinner Cidade, selecionando “Farmacia A” do Spinner Farmacia, como fazer um filtro de pesquisa, ou seja, como eu faria para em outra tela aparecer uma lista de todos os remadios da Farmacia selecionada

    • felipe Reply

      Ola Jéssica,

      Esse é um excelente exemplo, estou um pouco sem tempo essa semana. Talvez na segunda-feira eu possa responder pra voce com o exemplo do qual pediu funcionando.

  5. Elisângela Reply

    Ótimo seu post!
    Dica muito útil passada de forma fácil e objetiva…
    Me ajudou um tanto aqui!
    Obrigada!

  6. Marcelo Fagundes Reply

    Ótimo post amigo.
    Saberia como fazer pra recuperar qual o item selecionado, precisaria do id e nao da descricao?

Faça um comentário

*

Facebook Auto Publish Powered By : XYZScripts.com