Tecnologia do Blogger.
RSS

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

Na verdade, eu perguntei porque o problema provavelmente esteja aí mesmo, viu Guilherme.

Você está trabalhando com duas listas e parece que não está muito OK o que você está fazendo não ...

Aliás, a própria criação de "produtos" deveria estar representada como instâncias de produto mesmo, eu criaria um bean para este tipo de entidade e o qualificaria como serializável para que possa ser passado dentro da intent, como você está fazendo. E trabalharia também com um custom adapter, mantendo essa lista de instâncias de produto internamente, no adapter mesmo. Fica muito mais simples, muito mais direto e bem mais tranquilo de manipular. 

Cria uma subclasse de BaseAdapter, implementa ela mantendo uma List de instâncias de Produto, e eu acho que você terá mais legibilidade e bem menos dificuldade de seguir adiante. Qualquer coisa dá um toque e a gente troca uma ideia sobre isso ... beleza?

[]s,
Pedro

Em 3 de setembro de 2012 14:33, Guilherme Bernardi <gui.bernardi09@gmail.com> escreveu:
Eu acho que o problema pode estar relacionado a declaração do ArrayList listaProdutos.

Se eu coloco ele global, eu não consigo acessá-lo dentro do evento, só se eu mudá-lo para final.
E quando eu estou debugando ele não é detectável na primeira vez que passo pela linha, mesmo ele adicionando os dados ao itemSelected dentro do Evento.

Em segunda-feira, 3 de setembro de 2012 11h26min57s UTC-3, Guilherme Bernardi escreveu:
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.



--
-----------------------------------------------------
Pedro E. Cunha Brigatto
Twitter: @pedrobrigatto, GoogleTalk: pedrobrigatto@gmail.com
-----------------------------------------------------

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

0 comentários:

Postar um comentário