Setar nome do spinner através de código vindo do banco

240 views
Skip to first unread message

Willian do Amor

unread,
Oct 16, 2014, 8:08:34 AM10/16/14
to androidb...@googlegroups.com
Bom dia,

estou com a seguinte dúvida.

Possuo um cadastro de pedidos em meu aplicativo onde o usuário grava os pedidos e depois pode pesquisar o pedido para consultar, alterar, etc. Enfim, tenho um spinner que ao criar a activty mostra todos os vendedores cadastrado no banco, o que eu quero fazer é ao pesquisar um pedido, verificar qual o código do vendedor desse pedido e setar o nome do vendedor no spinner de acordo com o código do mesmo que esta no pedido. 

Alguém sabe como posso fazer isso?

Pedro Subutzki <Pepeu>

unread,
Oct 17, 2014, 8:56:37 AM10/17/14
to androidb...@googlegroups.com
Um spinner.setSelection(index) não resolve?

Abraços,
Pedro Subutzki


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

pedrofsn

unread,
Oct 18, 2014, 7:38:09 AM10/18/14
to androidb...@googlegroups.com
Pelo que entendi, você precisará que sua classe Vendedor, tenha ao menos os atributos nome e id/código.
O seu spinner possuirá um adapter que conterá, por exemplo, uma lista de objetos do tipo Vendedor.
Então, você poderá adicionar  mais um objeto do tipo Vendedor na sua List<Vendedores>, instanciar o seu adapter novamente, passando esta lista e dar um ".notifyDataChanged()", pra dar um "refresh" no seu spinner.

Esta é uma forma. ;)

Willian do Amor

unread,
Oct 22, 2014, 6:37:32 AM10/22/14
to androidb...@googlegroups.com
Bom dia,
ainda não consegui compreeender.
Eu tenho o spinner que ja carrega todos os vendedores no momento do onCreate da minha View.
Quando eu pesquiso um pedido eu teria que setar o nome do vendedor no spinner de acordo com o código do vendedor informado no pedido, mas deixando listados ainda todos os vendedores, vai que precisa trocar o vendedor.

--

pedrofsn

unread,
Oct 22, 2014, 7:35:41 AM10/22/14
to androidb...@googlegroups.com
Agora fiquei confuso rsrs.
Explique melhor o fluxo deste processo pra que eu possa te ajudar.
Se possível, com telas e o passo a passo.

Willian do Amor

unread,
Oct 22, 2014, 8:47:34 AM10/22/14
to androidb...@googlegroups.com
Seguinte.
No meu onCreate eu já carrego o meu spinner com todos os vendedores cadastrados na tabela vendedor.
Ao gravar um pedido o código do vendedor é gravado na tabela de cabeçalhos do pedido.
O que eu quero fazer é ao pesquisar um pedido, quando eu retornar esse pedido para a tela de cadastro de pedidos é setar o nome do vendedor na posição zero do spinner. O problema é que não consigo fazer uma comparação entre o código do vendedor e o código do vendedor cadastrado no pedido, pois para preencher o spinner sobrescrevi o toString do objeto vendedor então o mesmo me retorna apenas uma lista com os nomes dos vendedores. 

Como proceder?

--

Thiago Luiz Domacoski

unread,
Oct 22, 2014, 8:49:19 AM10/22/14
to androidb...@googlegroups.com
Nunca usei o spinner, mas acho que seria mais ou menos assim : 

minhaSpinner.setSelection(adapterDoSpinner.getPosition(vendedor.getNome()));

Sendo que, vendedor.getNome(), é o vendedor vindo do banco, e sua  adapterDoSpinner contém os nomes dos vendedores.

Willian do Amor

unread,
Oct 22, 2014, 9:40:58 AM10/22/14
to androidb...@googlegroups.com
tentei da seguinte forma e não consegui.


VendedorDAO listavendedor = new VendedorDAO(getActivity());
 
List<VendedorSerial> vendedor = listavendedor.busca(0, "%%");


 
for (int i = 0; i < vendedor.size(); i++) {


 
VendedorSerial vended = vendedor.get(i);


 
if (vended.getCodigo().equals (pedido.getVendedor().getCodigo())) {


 
ArrayAdapter<VendedorSerial> setVendedor = new ArrayAdapter<VendedorSerial>(getActivity(), android.R.layout.simple_expandable_list_item_1);
 spnVendedor
.setSelection(setVendedor.getPosition(vended.getNome));


 
}


 
}


The method getPosition(VendedorSerial) in the type ArrayAdapter<VendedorSerial> is not applicable for the arguments (String)

Thiago Luiz Domacoski

unread,
Oct 22, 2014, 11:17:49 AM10/22/14
to androidb...@googlegroups.com
Ok,
Existem duas coisas : 
1. Spinner
2. ArrayAdapter

A spinner é a reppresentação do seu elemento em tela;
O ArrayAdapter é a lista que sua Spinner contém!
Logo : 
Spinner minhaSpinner = new Spinner(getActivity() );
ArrayAdapter adapter = new ArrayAdapter<VendedorSerial>(getActivity(), android.R.layout.simple_expandable_list_item_1);
minhaSpinner.setAdapter(adapter);

o código a cima deve conter na construção de sua tela! 
Quando vc carregar seus dados e souber quem é o vendedor será :

final ArrayAdapter adapterDoSpinner minhaSpinner.getAdapter();
minhaSpinner.setSelection(adapterDoSpinner.getPosition(vendedor.getNome()));


Entendeu?
 
 

Willian do Amor

unread,
Oct 22, 2014, 11:45:19 AM10/22/14
to androidb...@googlegroups.com
tentei aqui, ele executa esse código mas não seta o vendedor correto. Ele deixa o nome do primeiro vendedor que no caso esta em ordem alfabética.

--

Thiago Luiz Domacoski

unread,
Oct 22, 2014, 12:10:42 PM10/22/14
to androidb...@googlegroups.com
OK, 
tenta assim : 
minhaSpinner.setSelection(adapterDoSpinner.getPosition(vendedor));
pois sua lista é de Vendedor, não apenas o nome dele, correto? 

Qualquer dúvida, posta aí! 

Abraços

Thiago Luiz Domacoski 
 
                       
    + 55 41 9953 9074


--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/zUxRw0lTTPU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages