Não consigo recuperar o click no listview

  • Respostas:1
Mário Sérgio Fischer Carvalho
  • Posts no fórum: 1

27/06/2015, 07:41:27 via Web

O que tem de errado no código abaixo?
Está exibindo o listview corretamente, porém não entra no evento click.

public class teste extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_teste);

    ListView lvVeiculos;

    lvVeiculos = (ListView) findViewById(R.id.lvVeiculos);

    String[] de = {"descricao", "percentual", "del", "codigo"};
    int[] para = {R.id.txtDescricao, R.id.txtPercentual, R.id.imaDel, R.id.txtCodigo};

    //adaptador = new ArrayAdapter<String>(teste.this, android.R.layout.simple_list_item_1, listarVeiculos());
    SimpleAdapter adaptador = new SimpleAdapter(teste.this, listarVeiculos(), R.layout.activity_lista_veiculo, de, para);
    lvVeiculos.setAdapter(adaptador);


    AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position,
                                long id) {
            Map<String, Object> map = veiculos.get(position);
            String destino = (String) map.get("percentual");
            String mensagem = "Viagem selecionada: "+ destino+ " position: " + position + " id: " + id;
            Toast.makeText(teste.this, mensagem, Toast.LENGTH_SHORT).show();
        }
    };

}

private List<Map<String, Object>> veiculos;

private List<Map<String, Object>> listarVeiculos() {
    veiculos = new ArrayList<Map<String,Object>>();
    Map<String, Object> item = new HashMap<String, Object>();
    item.put("descricao", "Media Geral");
    item.put("percentual", "70,0%");
    item.put("del", R.drawable.ic_delete);
    item.put("codigo","1");
    veiculos.add(item);
    item = new HashMap<String, Object>();
    item.put("descricao", "FIT");
    item.put("percentual", "71,0%");
    item.put("del",R.drawable.ic_delete);
    item.put("codigo","2");
    veiculos.add(item);
    item = new HashMap<String, Object>();
    item.put("descricao", "Corcel");
    item.put("percentual", "73,0%");
    item.put("del",R.drawable.ic_delete);
    item.put("codigo","3");
    veiculos.add(item);


    return veiculos;
}

}

Responder
Emerson
  • Posts no fórum: 2 888

27/06/2015, 21:53:30 via Web

Substitui

AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView parent, View view, int position,
long id) {
Map map = veiculos.get(position);
String destino = (String) map.get("percentual");
String mensagem = "Viagem selecionada: "+ destino+ " position: " + position + " id: " + id;
Toast.makeText(teste.this, mensagem, Toast.LENGTH_SHORT).show();
}
};

POR

lvVeiculos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView parent, View view,
int position, long id) {
Map map = veiculos.get(position);
String destino = (String) map.get("percentual");
String mensagem = "Viagem selecionada: "+ destino+ " position: " + position + " id: " + id;
Toast.makeText(teste.this, mensagem, Toast.LENGTH_SHORT).show();
}
});

e teste.

Smartphone: Moto G 2014 (XT1069) - Codinome: Titan
Sistema: Marshmallow STOCK
Kernel: Stock M
Versão do Android: 6.0

Responder