Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problema para pegar posição de array que foi clicada no ListView.

Sim, você tem razão eu dei uma boa olhada achei bastante coisa referente ao uso de ListView e acesso aos itens, mas continuo tendo problemas.


Mas não sei se é pelo jeito que estou montando o ListView, mas não estou conseguindo acessar a variável que carrego a lista. Se puder me ajudar eu agradeço.
Vou tentar explicar melhor:

Eu tenho uma função que lê um Xml no cartão de memória e eu monto a Lista que será carregada no ListView dessa forma:

  ArrayList<String> produto = new ArrayList<String>();
            produto.add(codigo);
            produto.add(nome);
            produto.add(prvenda);
            Collection l = Arrays.asList(produto);
            Lista.addAll(l);

Eu retorno essa lista e passo ela diretamente para o ListView:

setListAdapter(new ArrayAdapter<String>(this, R.layout.listaproduto, XmlPullParsing()));

Ai dentro do click do Item eu estou tentando obter o Array que eu passei na função XmlPullParsing().
 
   Intent troca = new Intent(ListaProduto.this, CadastroPedido.class);
 ArrayList<String> itemSelected = new  ArrayList<String>();
  itemSelected.add(listaProdutos.get(position));
 troca.putStringArrayListExtra("listaProduto", itemSelected);
 
 setResult(RESULT_OK, troca);
 ListaProduto.this.finish();

Eu acho que o problema está na declaração da variável listaProdutos, eu não tenho certeza. Pois quando eu faço o debug do código ele passa a primeira vez naquela linha em negrito adiciona o que eu quero corretamente ao itemSelected e se eu mando continuar, ele passa novamente ocorrendo a exceção. Eu precisaria passar o array para a outra Activity para manipular os dados, preciso passar um dado para cada campo.

Agora não sei, pode ser que esteja complicando atoa na montagem da ListView. Se puder me ajudar, eu agradeço.

Em segunda-feira, 3 de setembro de 2012 11h43min50s UTC-3, Mstrey escreveu:
Tenho quase certeza que esse assunto foi discutido mais de uma vez aqui na lista. da uma procurada no histórico do grupo.

Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Linux user: #525086
------------------



2012/9/3 Guilherme Bernardi <gui.ber...@gmail.com>
Pessoal, bom dia.

Sou novato na programação Android e estou tendo um problema para obter o item de um ArrayList através de um ListView. Já tentei durante um bom tempo resolver, acredito que está passando algo batido ou não estou fazendo da maneira correta.

Eu tenho uma função que lê um Xml, monta um ArrayList e retorna o mesmo, então eu declarei um ArrayList para receber este ArrayList:

public class ListaProduto extends ListActivity {
ArrayList<String> listaProdutos = new ArrayList<String>();

Quando eu chamo o ListView eu carrego este Array, meu problema está em obter o Item selecionado pois vou precisar manipulá-lo na Activity anterior.

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listaProdutos = XmlPullParsing();
setListAdapter(new ArrayAdapter<String>(this, R.layout.listaproduto, listaProdutos));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
 Intent troca = new Intent(ListaProduto.this, CadastroPedido.class);
 ArrayList<String> itemSelected = new  ArrayList<String>();
 itemSelected.add(listaProdutos.get(position));
 
 troca.putStringArrayListExtra("listaProduto", itemSelected);
 
 setResult(RESULT_OK, troca);
 ListaProduto.this.finish();
 
 }
}); 
//listView.setOnItemClickListener(onSelecionarItem);
}

E estou recebendo a exceção:
ClassCastException: java.util.ArrayList

Quando passo nesta linha:
itemSelected.add(listaProdutos.get(position)); 

Se alguém puder me ajudar?

Obrigado.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário