Unable to start activity:UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView

what should i do???

Correct your code.

UnsupportedOperationException: addView(View, LayoutParams) is not
supported in AdapterView

A subclass of AdapterView like a ListView can’t have children manually added either in the layout file or added in code. So if you have this in one of your layouts:

<ListView // .. other attributes>
     <// other views <-- notice the children of the ListView tag
</ListView>

don’t do it, as this will call the addView method of ListView, throwing the exception. Instead use:

<ListView // .. other attributes />
< // other views

You also can’t use any of the addView methods of ListView in code like this:

listViewReference.addView(anotherView); // <-- don't do it

Also, if you use the LayoutInflater.inflate method in the code of the Activity or the adapter(its getView method), don’t pass the ListView as the second parameter. For example, don’t use:

convertView  = inflator.inflate(R.layout.child_rows, parent);

as in Tamilarasi Sivaraj’s answer as that will throw the exception again. Instead use:

convertView  = inflator.inflate(R.layout.child_rows, parent, false);

Related to the exception you posted in the question, it appears you use the setText method with an int(one of the s or i arrays being an int array). The problem is that in this case TextView will think you’re trying to set the text using a string resource like this R.string.astring. The int you pass is not a string resource so an exception will be thrown. If s or i is an int and you’re trying to show it in the TextView use this instead:

tv.setText(String.valueOf(s[position])); // assuming s is the int array

Leave a Comment