android - 2 回收适配器中的视图支架
问题描述
我是android开发的新手。很抱歉,如果这是一个无用的问题。我RecyclerView
想显示来自Firebase
in 的图像和视频RecyclerView
。
我有两个ViewHolder
。我想要的是,适配器来检查帖子“类型”。如果
1) "type"=photo
。我想充气PhotoViewHolder
。
2)如果“类型”=视频我想充气VideoHolder
。
我怎样才能做到这一点?。请帮我!。
我已经用谷歌搜索了几个小时,我得到了这个代码,它只会膨胀 VideoHolder
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//findViewById...
mContext = parent.getContext();
switch (viewType) {
case VIDEO_TYPE:
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.video_type, parent, false);
return new VideoHolder(v);
case IMAGE_TYPE:
View i = LayoutInflater.from(parent.getContext()).inflate(R.layout.main_list, parent, false);
return new PhotoHolder(i);
}
return null;
}
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
mHolder = holder;
photo = moviesList.get(position);
// final VideoHolder viewHolder2 = (VideoHolder)holder;
int viewType = getItemViewType(position);
switch ( viewType ) {
case IMAGE_TYPE:
PhotoHolder photoview = (PhotoHolder) holder;
final ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(getItem(position).getImage_path(),photoview.image);
break;
case VIDEO_TYPE:
final VideoHolder viewHolder2 = (VideoHolder)holder;
//viewHolder2.users = new StringBuilder();
viewHolder2.bind(Uri.parse(photo.getImage_path()),moviesList);
break;
}
}
@Override
public int getItemCount() {
return moviesList.size();
}
public Photo getItem(int position) {
return moviesList.get(position);
}
@Override
public int getItemViewType ( int position ) {
int viewType;
if if (moviesList.get(position).getType().equals("Photo")) {
viewType = IMAGE_TYPE;
} else{
viewType = VIDEO_TYPE;
}
return viewType;
}
解决方案
将 .equals() 更改为 .contains()
@Override
public int getItemViewType ( int position ) {
int viewType;
if (moviesList.get(position).getType_post().contains("Photo")) {
viewType = IMAGE_TYPE;
} else{
viewType = VIDEO_TYPE;
}
return viewType;
}
推荐阅读
- sql-server - 在 SQL Server 中使用条件读取节点值
- typescript - TypeScript 中的另一个多态性问题
- python - Pandas 基于单个列进行聚合,同时保留其他列
- git - 从 master 获取最新更新到我的分支
- php - 在 PHP 中使用无限时间的 Oracle 查询
- python - Seaborn 点图中的分离点和误差条问题
- c++ - 调整二维动态数组大小的奇怪“e+08”值
- javascript - 如何在 StencilJS 中为第三方库分离包
- oracle - Oracle:如何 DEREF VARRAY 的 REF 和嵌套的 REF 表?
- r - R中的“ggplot()”图中的轴标签中有两个或多个换行符和斜体字