Setar um item(Objeto) em um Spinner  XML
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Autor Mensagem
anascimentof
Smalltalk
[Avatar]

Membro desde: 26/08/2011 07:02:07
Mensagens: 2
Localização: São PAulo SP
Offline

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<MarcaEquipamento> adaptador = new ArrayAdapter<MarcaEquipamento> (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<MarcaEquipamento> comboAdapter = (ArrayAdapter<MarcaEquipamento> 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

Fábio Santos do Nascimento
[Email]
marcusviniciusaso
Debugger
[Avatar]
Membro desde: 14/09/2010 10:57:59
Mensagens: 65
Offline

Tudo verto irmão?

Vê se resolve:

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


Marcus Vinícius
SCJA | SCJP | OCPWCD
[Email]
 
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Ir para:   
Powered by JForum 2.1.8 © JForum Team