【问题标题】:Image Gridview ArrayList图像网格视图数组列表
【发布时间】:2020-10-03 23:42:07
【问题描述】:

我已经在 ArrayList 中设置了图像源,但在 Gridview 中没有显示任何内容,知道这个 Arraylist.add(new Item( 0,R.drawable.add)) 有什么问题或有什么问题; 我已经试过了

https://www.androidhive.info/2016/05/android-working-with-card-view-and-recycler-view/

Android Grid View with Image and Text

项目

public class Item {
private int id;
private int Thumbnail;


public Item(int id,int thumbnail) {
    this.id = id;
    this.Thumbnail = thumbnail;

}

public void setThumbnail(int thumbnail) {
    Thumbnail = thumbnail;
}

public int getThumbnail() {
    return Thumbnail;
}

public void setId(int id) {
    this.id = id;
}
public int getId() {
    return id;
}

}

网格适配器

 //data array
public ArrayList<Object> mDataArrayList;
//context
private final Context mContext;
//listeners
private final ItemClickListener mItemClickListener;
private final SectionStateChangeListener mSectionStateChangeListener;
//view type
private static final int VIEW_TYPE_SECTION = R.layout.layout_section;
private static final int VIEW_TYPE_ITEM = R.layout.layout_item; //TODO : change this
public SectionedExpandableGridAdapter(Context context, ArrayList<Object> dataArrayList,
                                      final GridLayoutManager gridLayoutManager, ItemClickListener itemClickListener,
                                      SectionStateChangeListener sectionStateChangeListener) {
    mContext = context;
    mItemClickListener = itemClickListener;
    mSectionStateChangeListener = sectionStateChangeListener;
    mDataArrayList = dataArrayList;
    gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return isSection(position)?gridLayoutManager.getSpanCount():1;
        }
    });
}
private boolean isSection(int position) {
    return mDataArrayList.get(position) instanceof Section;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(mContext).inflate(viewType, parent, false), viewType);
}




@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    switch (holder.viewType) {
        case VIEW_TYPE_ITEM :
            final Item item = (Item) mDataArrayList.get(position);

            holder.view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mItemClickListener.itemClicked(item);
                }
            });
            break;
        case VIEW_TYPE_SECTION :
            final Section section = (Section) mDataArrayList.get(position);
            holder.sectionTextView.setText(section.getName());
            holder.sectionTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mItemClickListener.itemClicked(section);
                }
            });
            holder.sectionToggleButton.setChecked(section.isExpanded);
            holder.sectionToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    mSectionStateChangeListener.onSectionStateChanged(section, isChecked);
                }
            });
            break;
    }
}
@Override
public int getItemCount() {
    return mDataArrayList.size();
}
@Override
public int getItemViewType(int position) {
    if (isSection(position))
        return VIEW_TYPE_SECTION;
    else return VIEW_TYPE_ITEM;
}
protected static class ViewHolder extends RecyclerView.ViewHolder {
    //common
    View view;
    int viewType;
    //for section
    TextView sectionTextView;
    ToggleButton sectionToggleButton;
    //for item
    TextView itemTextView;
    ImageView imageView;
    public ViewHolder(View view, int viewType) {
        super(view);
        this.viewType = viewType;
        this.view = view;
        if (viewType == VIEW_TYPE_ITEM) {
            imageView =(ImageView   ) view.findViewById(R.id.the_grid_image_preview);
        } else {
            sectionTextView = (TextView) view.findViewById(R.id.text_section);
            sectionToggleButton = (ToggleButton) view.findViewById(R.id.toggle_button_section);
        }
    }
}

【问题讨论】:

    标签: java android arrays arraylist


    【解决方案1】:

    onBindViewHolder 我添加了 ImageView imageV = holder.imagePreview; imageV.setImageResource(((Item) mDataArrayList.get(position)).getThumbnail());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 2011-07-26
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多