Setar um item(Objeto) em um Spinner

1 resposta
A

Ola pessoal, sou iniciante na tecnologia Android e estou com dúvida na maneira correta de setar um item(objeto) específico dentro de um spinner, onde o meu ArrayAdapter de MarcaEquipamento, o qual possui os atributos código e descrição. Cada objeto Equipamento tem um atributo marcar que é do tipo MarcaEquipamento, que é apresentado na tela por um spinner. Ao alterar o meu Equipamento, o tela deve carregar o spinner com todas as marcas que estão no banco e setar qual Marca do equipamento que estava gravado banco. Como cada Marca tem um código , no meu método retornaPosicaoCombo(MarcaEquipamento me) , eu recebo a minha Marca que eu quero localizar no spinner, e comparo com cada objeto do adapter do spinner dentro de um for, se o código for igual, eu identifico a posição e assumo ele como setSelection do meu spinner.

Será que tem outra maneira de setar tal posição no spinner sem utilizar um for ?

Obrigado pela ajuda pessoal…

Minha Activity:

public void onCreate(Bundle icicle){

super.onCreate(icicle);

setContentView(R.layout.formequipamento);
//CRIAR OS OBJETOS DOS COMPONENTES DO FORM.

telaDescricao	 = (EditText) findViewById(R.formEquipamento.equipamento);

comboMarca	 = (Spinner) findViewById(R.formEquipamento.combomarca);

comboMarca.setPrompt(Marca);

carregarComboMarca();

//RECEBER O EQUIPAMENTO ALTERADO DA TELA DE LISTA EQUIPAMENTO
equipamento = (Equipamento) getIntent().getSerializableExtra(“eqSelecionado”);

if(equipamento == null)	{

equipamento = new Equipamento();

}else{

//CARREGAR OS CAMPOS DO FORM. PARA ALTERAÇÃO

telaDescricao.setText(equipamento.getDescricao());

comboMarca.setSelection( retornaPosicaoCombo( equipamento.getMarca() ) );

}

}
//METODO DE CARREGAR AS MARCAS NO COMBOMARCA DO FORM

private void carregarComboMarca(){

MarcaEquipamentoDAO marcaDAO = new MarcaEquipamentoDAO(FormEquipamento.this);

listaCombo = marcaDAO.listar() ;

if (!listaCombo.isEmpty()){

ArrayAdapter adaptador = new ArrayAdapter (FormEquipamento.this ,android.R.layout.simple_spinner_item ,listaCombo );

adaptador.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);

comboMarca.setAdapter(adaptador);

}

}
//METODO DE RETORNAR A POSICAO DE UM OBJETO MARCA NO COMBOMARCA

private int retornaPosicaoCombo(MarcaEquipamento me){

posicao = -1;

ArrayAdapter comboAdapter = (ArrayAdapter) comboMarca.getAdapter();

for (int i = 0; i < comboAdapter.getCount(); i++) {

if(comboAdapter.getItem(i).getCodigo() == me.getCodigo()){

posicao = i;

break;

}

}

return posicao;

}

Obrigado pela força pessoal

1 Resposta

M

Tudo certo irmão?

Vê se resolve:

http://www.guj.com.br/java/252889-android-problema-ao-selecionar-item-do-spinner#1385559

Criado 26 de agosto de 2011
Ultima resposta 7 de fev. de 2012
Respostas 1
Participantes 2