Setar a posição do Adapter em um Spinner através do Id

2 respostas
A

Pessoal

Estou com uma dúvida, acredito que ou seja muito fácil e estou realmente marcando bobeira.

Estou carregando um Spinner com um SimpleCursorAdapter:

dataAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursorTipoPedido, camposTipoPedido, new int[] {android.R.id.text1}); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinTipoPedido.setAdapter(dataAdapter);

No meu banco de dados SQLite, eu gravo o Id:

Como eu posso na hora de carregar este mesmo pedido, eu não tenho a posição.
Mas eu tenho o meu Spinner em tela com o Adapter carregado.
Setar o conteúdo do Spinner no caso a posição do Item que eu quero através do Id que eu armazenei no meu banco de dados?

É possível? Ou vocês costumam armazenar a posição mesmo?

Obrigado desde já.

2 Respostas

M

Voce vai ter que dar um list.indexOf(objeto) para ir para a posição que voce quer.

A
Marky.Vasconcelos:
Voce vai ter que dar um list.indexOf(objeto) para ir para a posição que voce quer.

Marky desculpa a ignorância, mas eu não entendi exatamente.

Quando eu vou carregar um pedido, eu tenho o código que eu gravei anteriormente.

Eu tenho um objeto Pedido que tem um atributo TipoPedido que é um objeto TipoPedido.

Então quando eu vou carregá-lo, por exemplo ele me retorna 2 que é código do TipoPedido que eu selecionei na gravação.

Eu andei procurando na internet, encontrei diversos links onde o pessoal disse que resolve fazendo 1 loop e verificando:

long tipoPedido = pedido.getTipoPedido().getCodigo();

for (int i = 0; i < spinTipoPedido.getCount(); i++) {
	long itemIdAtPosition2 = spinTipoPedido.getItemIdAtPosition(i);
	if (itemIdAtPosition2 == tipoPedido) {
		spinTipoPedido.setSelection(i);
		break;
        }
}

Mas acho que é totalmente desnecessário isso, só vai fazer um consumo de processamento desnecessário. Apenas para carregar um Spinner.

Obrigado desde já.

Criado 30 de abril de 2013
Ultima resposta 2 de mai. de 2013
Respostas 2
Participantes 2