I have implemented a custom adapter and listItemView. The adapter sets an onlclick listener to a button that is on the listItemView. The onclick listener simply calls a private method I have in the adapter and passes it the position of the item to be removed. I know the position is correct because the database removes the proper item. I have found similar questions but have not been able to adapt the answers to work for me. Ideas and thoughts are greatly appreciated. Thanks. 

Here is the full adapter class 

```
public class FoodListAdapter extends ArrayAdapter<FoodListItem> {

    //private
    private int type;

    public FoodListAdapter(Context context, ArrayList<FoodListItem> _objects) {
        super(context, 0, _objects);
        type = 0;       
    }

    public FoodListAdapter(Context context, ArrayList<FoodListItem> _objects, int _type) {
        super(context, 0, _objects);
        type = _type;       
    }

    @Override
    public View getView(int position, View reusableView, ViewGroup parent)
    {
        //Cast the reusable view to a listAdpaterItemView
        FoodListItemView listItemView = (FoodListItemView) reusableView;

        //Check if the listAdapterItem is null
        if(listItemView == null)
        {
            //If it is null, then create a view.
            listItemView = FoodListItemView.inflate(parent, this, type);
        }

        if (type == 2)
        {
            Button deleteButton = (Button) listItemView.findViewById(R.id.listItemViewDeleteBTN);
            deleteButton.setTag(new Integer(position));
        }

        //Now we need to set the view to display the data.
        listItemView.setData(getItem(position));

        return listItemView;
    }
}

```

Here is a portion of my code used in fragment. Note that I have a private variable decalred in the class for listAdapter, though I don't think I need that.

```
    private void displayListForDate(Calendar _date)
{
    //get the list view
    ListView listView = (ListView) getView().findViewById(1);
    //Clear the listview by removing the listadapter and setting it to null.
    //listView.setAdapter(null);

    //First we must get the items.
    Global global = (Global) getActivity().getApplicationContext();
    DietSQLiteHelper database = global.getDatabase();

    //Create a list to hold the items we ate. This list will then be added to the listView.
    final ArrayList<FoodListItem> consumedList;
    //Add the items to the array.
    consumedList = database.getConsumed(_date.getTimeInMillis());

    //Create an adapter to be used by the listView
    listAdapter = new FoodListAdapter(getActivity().getBaseContext(), consumedList, 2);

    //Add the adapter to the listView.
    listView.setAdapter(listAdapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            consumedList.remove(position);
            listAdapter.notifyDataSetChanged();
        }
    });
}

```