when you use super, you have to call one of the parent class defined constructors
ArrayAdapter, as you can see here, has this available constructors:
ArrayAdapter(Context context, int resource)
ArrayAdapter(Context context, int resource, int textViewResourceId)
ArrayAdapter(Context context, int resource, String[] objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, String[] objects)
ArrayAdapter(Context context, int resource, List<String> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
So you have to call one of them
and you are calling
super(context, textViewResourceId, itemResourceIds, list); that is ArrayAdapter(Context, int, int[], ArrayList) and does not exists.
instead of an array of int, itemResourceIds
should be an int.
How to fix it depends on what are the contents of itemResources[];
think that this:
ArrayAdapter(Context context, int resource, int textViewResourceId, List<String> objects)
receives the id of an xml layout file, and then the id of a text field.
and this
ArrayAdapter(Context context, int resource, List<T> objects)
receives just the id of the xml file
probably you may want to just call
super(context, itemResourceIds[0],textViewResourceId, list);
or just
super(context, itemResourceIds[0], list);
but that depends on what the content of itemResourceIds
actually are.
If you are implementing the whole adapter, you dont really care about what id you are passing to the parent, so you can simply change it to
super(context, 0, list);
since in the parent class nobody is goint to use it.
Anyways, if you are goint to implement everything by yourself, you can consider extending BaseAdapter
instead of ArrayAdaper
since BaseAdapter doesnt need any parameter in the constructor, and probably you dont need any functionality of the ArrayAdapter.