Search code examples
androidandroid-listviewandroid-arrayadaptercustom-adapter

How to get tapped List Item position in Adapter class on button click


I am trying to get tapped list item position in Adapter class on button click, but did not get any success

First of all i have to get tapped list item and then want to delete that row

getting something like this: D/strPosition::-(1922): com.and.field.Transport@b3ddf5c0

using below code:

viewHolder.btnDelete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {         

                strPosition = arrayList.get(position).toString();
                Log.d("strPosition::-", strPosition);

                // and then want to delete that row using tapped position

                strName = arrayList.get(position).getName().toString();                         

            }
        });

Solution

  • You can not use position in your onClick method, instead use next approach

    viewHolder.btnDelete.setTag(position);
    viewHolder.btnDelete.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(final View v) {
                Integer taggedPosition = (Integer) v.getTag();
                Log.d("Position::-", Integer.toString(taggedPosition));
                strName = arrayList.get(taggedPosition).getName().toString();
            }
        });