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