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