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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…