2
respostas

ListView não funciona evento de click

Boa tarde pessoal, tudo bem? terminei o curso de android de vocês, e estou tentando aplicar o que aprendi em um projeto meu. Estou seguindo o projeto do curso, porém quando crio um ListView, eu consigo preencher todos os dados dele, inserir um novo item no banco e atualizar a lista, tudo certinho. Porem o evento de click nao funciona.

Segue o código de minha activity

public class ListaOcorrenciasActivity extends AppCompatActivity {

    private ListView listaOcorrencias;

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

        listaOcorrencias = (ListView) findViewById(R.id.lista_ocorrencias);


        listaOcorrencias.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> lista, View view, int position, long id) {
                Ocorrencia ocorrencia = (Ocorrencia) lista.getItemAtPosition(position);
                Intent vaiProCadastro = new Intent(ListaOcorrenciasActivity.this, CadastroOcorrenciaInicialActivity.class);
                vaiProCadastro.putExtra("ocorrencia", ocorrencia);
                startActivity(vaiProCadastro);
            }
        });

        FloatingActionButton btbCadastrarNovaOcorrencia = (FloatingActionButton) findViewById(R.id.lista_botao_cadastrarNova);
        btbCadastrarNovaOcorrencia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intentVaiProCadastro = new Intent(ListaOcorrenciasActivity.this, CadastroOcorrenciaInicialActivity.class);
                startActivity(intentVaiProCadastro);
            }
        });

    }

    protected void onResume() {
        super.onResume();
        carregarLista();
    }
    private void carregarLista(){
        OcorrenciasDao dao = new OcorrenciasDao(this);
        List<Ocorrencia> ocorrencias = dao.buscaOcorrencias();
        dao.close();
        OcorrenciaAdapter adapter = new OcorrenciaAdapter(this, ocorrencias);
        listaOcorrencias.setAdapter(adapter);
    }

Meu adapter

public class OcorrenciaAdapter extends BaseAdapter {

    private final List<Ocorrencia> ocorrencias;
    private final Context context;


    public OcorrenciaAdapter(Context context, List<Ocorrencia> ocorrencias) {
        this.context = context;
        this.ocorrencias = ocorrencias;
    }

    @Override
    public int getCount() {
        return ocorrencias.size();
    }

    @Override
    public Object getItem(int position) {
        return ocorrencias.get(position);
    }

    @Override
    public long getItemId(int position) {
        return ocorrencias.get(position).getId();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Ocorrencia ocorrencia = new Ocorrencia();
        ocorrencia = ocorrencias.get(position);
        View view = convertView;
        LayoutInflater inflater = LayoutInflater.from(context);

        if (view == null) {
            view = inflater.inflate(R.layout.item_lista_ocorrencias, parent, false);
        }
        ImageView campoFoto = (ImageView) view.findViewById(R.id.item_imagem);
//        TextView txtData = (TextView) view.findViewById(R.id.item_data);
        TextView txtNumeroTalao = (TextView) view.findViewById(R.id.item_numeroTalao);
        TextView txtNatureza = (TextView) view.findViewById(R.id.item_natureza);
//
//        if (txtData != null) {
//            txtData.setText(ocorrencia.getData());
//
//        }
        txtNatureza.setText(ocorrencia.getNaturezaOcorrencia());
        txtNumeroTalao.setText(ocorrencia.getNumeroTalao());

        String caminhoFoto = ocorrencia.getCaminhoFoto();
        if (caminhoFoto != null) {
            Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
            Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
            campoFoto.setImageBitmap(bitmapReduzido);
            campoFoto.setScaleType(ImageView.ScaleType.FIT_XY);
        }
        return view;

    }
}

Ja tentei alterar o atributo clickable da listview para true, mas mesmo assim nao funcionou

2 respostas

Jilles, tudo bem ?

Mostra os layouts, em xml para gente dar uma olhadinha.

Abraços

Já resolvido, dei um clean no projeto e funciono..... hehe abraços

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software