Android, OnItemClickList with variable ListView

0

In this code I have a list that keeps updating and adds another line in listview , however, I need to position it to be able to delete it from the vector. It happens that it is giving error with the class OnItemClickList ....

package com.example.projeto.carrinho;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;

import static com.example.projeto.carrinho.Constants.FIRST_COLUMN;
import static com.example.projeto.carrinho.Constants.FOURTH_COLUMN;
import static com.example.projeto.carrinho.Constants.SECOND_COLUMN;
import static com.example.projeto.carrinho.Constants.THIRD_COLUMN;

/**
 * Created by victor on 26/02/17.
 */

public class ActivityList extends ActionBarActivity implements AdapterView.OnItemClickListener {

    private ArrayList < HashMap < String, String >> list;

    String[] nome = {
        "Darth Vader",
        "Fake Vader",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado",
        "Objeto não identificado"
    };
    String[] item = {
        "Quantidade:01",
        "Quantidade:02",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado",
        "Quantidade:Ilimitado"
    };
    String[] preco = {
        "Preço: R$999,00",
        "Preço: R$1,00",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis",
        "Preço: Grátis"
    };
    String[] imgs = {
        String.valueOf(R.drawable.darth_vader2),
        String.valueOf(R.drawable.darth_vader2),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco),
        String.valueOf(R.drawable.cinco)
    };
    int i = 0;

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView << ? > parent, View view, int position, long id) {

                int itemPosition = position;

                // ListView Clicked item value
                String itemValue = (String) listView.getItemAtPosition(position);

                // Show Alert
                Toast.makeText(getApplicationContext(), "Position :" + itemPosition + "  ListItem : " + itemValue, Toast.LENGTH_LONG).show();

            }
        });

    }

    public void botao(View v) {

        populateList();
        ListViewAdapter adapter = new ListViewAdapter(this, list);
        listView.setAdapter(adapter);

    }

    int j = 1;

    private void populateList() {

        if (i != 0)
            list.clear();

        list = new ArrayList < HashMap < String, String >> ();

        for (int j = 0; j <= i; j++) {

            HashMap < String, String > temp = new HashMap < String, String > ();
            temp.put(FIRST_COLUMN, nome[j]);
            temp.put(SECOND_COLUMN, item[j]);
            temp.put(THIRD_COLUMN, imgs[j]);
            temp.put(FOURTH_COLUMN, preco[j]);
            list.add(temp);

        }
        i++;

    }

    @Override
    public void onItemClick(AdapterView << ? > parent, View view, int position, long id) {

    }
}
    
asked by anonymous 27.02.2017 / 18:16

1 answer

0

You must bind your ListView to the XML within the onCreate method as follows:

ListView listView;

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

    listView = (ListView) findViewById(R.id.listView);
    
27.02.2017 / 18:33