问题描述
我是 android studio 的新手,想在问题上得到一些帮助。
我最初有一个 FirestoreRecyclerAdapter ,但我经常使用它来集成广告。查看教程和其他资源,我决定重新制作我的适配器并使用常规 recyclerview。
现在我已经完成了 recyclerview 的问题,但是我在尝试从 Firebase Firestore 填充数据时遇到了问题。
recyclerview 适配器
public class adapterRegular extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final static int TYPE_AD=0;
private final static int TYPE_REG=1;
private Context context;
private List<Object> noteList;
public void setData(List<Note> note){
this.noteList.addAll(note);
}
public void setAds(List<UnifiednativeAd> ads){
this.noteList.addAll(ads);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder,int position) {
int viewtype = getItemViewType(position);
if(viewtype == TYPE_AD){
AdTemplateViewHolder adTemplateViewHolder = (AdTemplateViewHolder)holder;
adTemplateViewHolder.setUnifiednativeAd((UnifiednativeAd) noteList.get(position));
}
Note note = (Note) noteList.get(position);
noteHolder noteHolder = (noteHolder)holder;
noteHolder.ownerName.setText(note.getownerName());
noteHolder.text.setText(note.getPost());
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
context = parent.getContext();
if(viewType == TYPE_AD){
View view = LayoutInflater.from(context).inflate(R.layout.reclyerads,parent,false);
return new AdTemplateViewHolder(view);
}
View view = LayoutInflater.from(context).inflate(R.layout.list_row,false);
return new noteHolder(view);
}
@Override
public int getItemCount() {
return noteList.size();
}
public class noteHolder extends RecyclerView.ViewHolder{
TextView ownerName;
TextView timestamp;
TextView text;
ImageView imageURL;
TextView replies;
TextView likes;
ImageView heart;
public noteHolder(@NonNull View itemView) {
super(itemView);
ownerName = itemView.findViewById(R.id.userName);
timestamp = itemView.findViewById(R.id.time);
text = itemView.findViewById(R.id.post);
imageURL = itemView.findViewById(R.id.profilePic);
replies = itemView.findViewById(R.id.REPLY);
likes = itemView.findViewById(R.id.likes);
heart = itemView.findViewById(R.id.heart);
}
}
public class AdTemplateViewHolder extends RecyclerView.ViewHolder{
TemplateView templateView;
public AdTemplateViewHolder(@NonNull View itemView) {
super(itemView);
templateView = itemView.findViewById(R.id.my_template);
NativeTemplateStyle style = new NativeTemplateStyle.Builder()
.withMainBackgroundColor(new ColorDrawable(Color.parseColor("#FFFFFF"))).build();
templateView.setStyles(style);
}
public void setUnifiednativeAd(UnifiednativeAd ads){
templateView.setNativeAd(ads);
}
}
@Override
public int getItemViewType(int position) {
if (noteList.get(position) instanceof UnifiednativeAd) {
return TYPE_AD;
}else {
return TYPE_REG;
}
}
}
我如何设置 FirsTORERECYCLERVIEW
我想要类似的东西,但对于另一个适配器。
FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
.setQuery(query,Note.class)
.build();
adapter = new adapter(options);
recyclerView = v.findViewById(R.id.recycle);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new linearlayoutmanager(recyclerView.getContext()));
recyclerView.setAdapter(adapter);
感谢任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)