我有一个可扩展的ListView。我需要动态地将View(相对布局与textview)集成到ListView中 我有一个axml文件(它就像我动态视图的模板) 我这样做
id
之后,我试图进入可扩展列表(称为" _List"):
View _view = LayoutInflater.Inflate(Resource.Layout.DynamicControl,null);
比我使用适配器,放入ListView数据:
_List.AddView(_view,0); //where 0 is position(index)
IDE给我例外:
java.lang.UnsupportedOperationException:addView(View)不是 AdapterView支持
我读到,_List.SetAdapter(new _Adapter(this, List<MyClass>, _List));
没有集成在listView视图中,我需要使用(总是)适配器。这是真的吗?(可能存在解决方法或者我可以覆盖我的构造函数(Of Custom _Adapter)并给出其他参数,如Context和Views?)。
那么,为什么AddView()
正常工作?
PS对不起我的工程师。谢谢!
UPD:
http://i.stack.imgur.com/5LhLA.png
AddFooterView / AddHeaderView
我该怎么办?
答案 0 :(得分:0)
AdapterView中不支持addView()。 块引用
这意味着AdapterView - &gt; ListView,ExpandableListView,ViewPager等等。
我不知道该怎么做。 向我展示样机,或任何UI的图片。那我可以帮你。
答案 1 :(得分:0)
是的,我们只能在适配器的帮助下将视图添加到列表视图。要添加自定义视图,我们需要通过扩展其中一个适配器类来定义我们自己的适配器,如 BaseAdapter ,< strong> CursorAdapter 等
例如:我们有
public class ContactListAdapter extends BaseAdapter{
private List<String> name;
private LayoutInflater layoutInflater;
public ContactListAdapter(Activity activity) {
layoutInflater = activity.getLayoutInflater();
name = new ArrayList<String>();
}
public void addMessage(String message) {
name.add(message);
notifyDataSetChanged();
}
public void removeMessage(String message) {
name.remove(message);
notifyDataSetChanged();
}
@Override
public int getCount() {
return name.size();
}
@Override
public Object getItem(int i) {
return name.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int i) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
int direction = getItemViewType(i);
if (convertView == null) {
//LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.contact_list, viewGroup, false);
}
String message = name.get(i);
final TextView txtMessage = (TextView) convertView.findViewById(R.id.contactName);
txtMessage.setText(message.toString());
ImageView imageView=(ImageView)convertView.findViewById(R.id.contactImage);
return convertView;
}
}
此适配器添加具有一个图像和一个TextView的联系人列表视图。 添加页眉和页脚视图只是为了定义页眉和页脚部分是固定的,没有任何内容与列表视图,所有相同类型的视图页眉和页脚可以是不同的。
答案 2 :(得分:0)
所以解决方法是(对我来说),生成帖子条件并放置不同的布局:
var inflater = _context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater;
if(!SpecificLayout)
{
view = inflater.Inflate(Resource.Layout.SpecificLayout, null);
}
else
{
view = inflater.Inflate(Resource.Layout.AnotherLayout, null);
}