OnCreate:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.listaproduto, XmlPullParsing()));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
private ArrayList<String> listaProdutos;
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();
}
});
}
Função que lê xml interno:
private ArrayList<String> XmlPullParsing(){
//private void XmlPullParsing(){
ArrayList<String> Lista = new ArrayList<String>();
try {
InputStream is = openFileInput("produto.xml");
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(is, null);
int eventType = parser.getEventType();
String codigo="";
String nome="";
String prvenda="";
String tag="";
while(eventType != XmlPullParser.END_DOCUMENT) {
if(eventType==XmlPullParser.START_TAG){
tag=parser.getName();
if (tag.equals("Codigo"))
{
eventType = parser.next();
codigo = parser.getText();
}
else if (tag.equals("Descricao"))
{
eventType = parser.next();
nome = parser.getText();
}
else if (tag.equals("PrVenda"))
{
eventType = parser.next();
prvenda = parser.getText();
}
}
if(eventType==XmlPullParser.END_TAG){
tag=parser.getName();
if (tag.equals("PrVenda"))
{
ArrayList<String> produto = new ArrayList<String>();
produto.add(codigo);
produto.add(nome);
produto.add(prvenda);
Collection l = Arrays.asList(produto);
Lista.addAll(l);
}
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return Lista;
}
Tem isso dai.
Em segunda-feira, 3 de setembro de 2012 14h15min00s UTC-3, Pedro Brigatto escreveu:
Mãe do céu ...
Guilherme, eu acho que não é bem isso que está no seu código, será que é mesmo?Tem uma maçaroca de variáveis aí, não exatamente claras quanto ao uso.Se você puder, manda o código completo dessa activity. Tudo bem para você colocar o código aqui para vermos?Abraço,PedroEm 3 de setembro de 2012 14:06, Guilherme Bernardi <gui.ber...@gmail.com> escreveu:
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
------------------
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.@Overridepublic 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 BrigattoTwitter: @pedrobrigatto, GoogleTalk: pedrob...@gmail.com
-----------------------------------------------------






0 comentários:
Postar um comentário