Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Dificuldades com ListView

Amigo, fiz um exemplo simples. Espero que te ajude.


Estou enviando em anexo pra você.

Abraço.

Em 11 de setembro de 2012 14:00, Maicon Strey <mstrey@gmail.com> escreveu:
Posso estar errado mas no teu Menu.java na linha 121 eu faria assim:
Produto p = produtos.get(arg2);


Outra coisa, por boas práticas de programação é melhor renomear as variáveis do teu programa. Tu sabes o que é esse arg2 que eu coloquei ali? se não sabe é melhor dar uma estudada melhor, mas ele é o numero do item que foi clicado. se o usuário clicar no item 3 da lista essa variável vai retornar '3'. para uma melhor compreensão é aconselhável renomear as variáveis e nesse caos ficaria melhor algo como "position" ou "listItem".

Enfim, vê se isso vai te ajudar.


Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Linux user: #525086
Frase de todos os dias: "Se não mandar o log eu não ajudo!"



2012/9/11 Roversi <matheusroversi@gmail.com>
Então, consegui fazer ele entrar no evento click, porém dá um erro: "Sorry! The application Change numbers (process com.hamdyghanem.httprequest) has stopped unexpectedly. Please try again."

No evento click ficou assim:

Em anexo estou colocando o Log de erro qdo executa o click com os 3 principais arquivos.. Menu.java, Produtos.java e ProdutosAdapter.java

Aguardo aqui na esperança



Em terça-feira, 11 de setembro de 2012 09h45min16s UTC-3, Clebão escreveu:
Dentro do lv.setOnItemClickListener existe o metodo public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {}

Note que exite 4 parâmetros, o primeiro é o Adapter, o segundo é a view, o terceiro a posição do que foi clicado e o quarto é o id.

Não sei como foi construído o seu ProdutoAdapter, é basiscamente realizar um cast + ou - assim   
Produto prod =   (Produto) arg0.get(arg2);

Mas para isso vai depender de como seu ProdutoAdapterfoi construido.

Em 10 de setembro de 2012 23:49, Murilo Ângelo <muriloangelo10@gmail.com> escreveu:
posta o log cara, passei por um problema exatamente igual, mas como vc esta dizendo que nem no evento entra, precisaremos de mais informações


2012/9/10 Roversi <matheusroversi@gmail.com>
Pessoal estou com dificuldades em pegar o id de um item de um ListView, criei uma função onde carrega uma um listview com produtos do banco de dados, porém não estou conseguindo fazer o click do listview pegar a id, nem entrar no evento.. alguém sabe me dizer onde estou errando?



// FUNÇÃO
public void CarregandoProdutos(int Categoria){
//Cria Array para criar a Lista de produtos e categorias
List<Produto> produtos = new ArrayList<Produto>();
Resources r = getResources();
//Carrega lista de produtos
    cursor = mySQLiteAdapter.queryProdutos(Categoria);  
        //String[] from2 = new String[]{SQLiteAdapter.KEY_ID, SQLiteAdapter.KEY_CONTENT1, SQLiteAdapter.KEY_CONTENT2};
        cursor.moveToFirst();
        while(!cursor.isAfterLast()) {
        //Log.i("", cursor.getString(0)+"/"+cursor.getString(1)+"/"+cursor.getString(2));
        int resId = r.getIdentifier("prato"+cursor.getString(0),"drawable", getPackageName());
        produtos.add(new Produto(cursor.getString(0), cursor.getString(1), resId, cursor.getString(2)));
          cursor.moveToNext();
        }
        cursor.close();
ProdutoAdapter adapter = new ProdutoAdapter(getApplicationContext(),produtos);
//Amarra um objeto ListView com o ListView declarado no XML.
ListView lv = (ListView) findViewById(R.id.Lista);
lv.setAdapter(adapter);
                Log.i("onitemclicklistener","inicio");
                lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.i("listview","click");
}});
        Log.i("onitemclicklistener","fim");
}






--
Analista-Programador

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

0 comentários:

Postar um comentário