Android 在ListView中创建不同数量的项目

Android 在ListView中创建不同数量的项目,android,listview,baseadapter,Android,Listview,Baseadapter,在此适配器中,您必须将项目填充到布局中已创建的ID 当importet列表中的每个项目对于每个列表行都有不同数量的图像或文本时,如何在此适配器内创建新的Imageview(或其他) 例如: 我想根据每个项目,在黑白框所在的位置填充X张图片 public class CustomBaseAdapter extends BaseAdapter { Context context; List<RowItem> rowItems; publi

在此适配器中,您必须将项目填充到布局中已创建的ID

当importet列表中的每个项目对于每个列表行都有不同数量的图像或文本时,如何在此适配器内创建新的Imageview(或其他)

例如:

我想根据每个项目,在黑白框所在的位置填充X张图片

public class CustomBaseAdapter extends BaseAdapter {
        Context context;
        List<RowItem> rowItems;

        public CustomBaseAdapter(Context context, List<RowItem> items) {
            this.context = context;
            this.rowItems = items;
        }

        /*private view holder class*/
        private class ViewHolder {
            ImageView imageView;
            TextView txtTitle;
            TextView txtDesc;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;

            LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.list_item, null);
                holder = new ViewHolder();
                holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
                holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
                holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
                convertView.setTag(holder);
            }
            else {
                holder = (ViewHolder) convertView.getTag();
            }

            RowItem rowItem = (RowItem) getItem(position);

            holder.txtDesc.setText(rowItem.getDesc());
            holder.txtTitle.setText(rowItem.getTitle());
            holder.imageView.setImageResource(rowItem.getImageId());

            return convertView;
        }

        @Override
        public int getCount() {
            return rowItems.size();
        }

        @Override
        public Object getItem(int position) {
            return rowItems.get(position);
        }

        @Override
        public long getItemId(int position) {
            return rowItems.indexOf(getItem(position));
        }
    }

公共类CustomBaseAdapter扩展BaseAdapter{
语境;
列出项目;
公共CustomBaseAdapter(上下文、列表项){
this.context=上下文;
this.rowItems=项目;
}
/*私有视图持有者类*/
私有类视窗持有者{
图像视图图像视图;
TextView-txtTitle;
TextView-txtDesc;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
if(convertView==null){
convertView=mInflater.充气(R.layout.list_项,空);
holder=新的ViewHolder();
holder.txtDesc=(TextView)convertView.findViewById(R.id.desc);
holder.txtTitle=(TextView)convertView.findViewById(R.id.title);
holder.imageView=(imageView)convertView.findViewById(R.id.icon);
convertView.setTag(支架);
}
否则{
holder=(ViewHolder)convertView.getTag();
}
RowItem RowItem=(RowItem)getItem(位置);
holder.txtDesc.setText(rowItem.getDesc());
holder.txtitle.setText(rowItem.getTitle());
holder.imageView.setImageResource(rowItem.getImageId());
返回视图;
}
@凌驾
public int getCount(){
返回rowItems.size();
}
@凌驾
公共对象getItem(int位置){
返回行项目。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回rowItems.indexOf(getItem(position));
}
}

将所需内容放入R.layout.list\u项中,并根据需要显示或隐藏