| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/08/2011 07:07:05
|
anascimentof
Smalltalk
![[Avatar]](/images/avatar/92f86f0915368f3613f1538baa9e70f8.jpg)
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 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 15:10:12
|
marcusviniciusaso
Debugger
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 |
|
|
 |
|
|
|
|