gpt4 book ai didi

android - FirebaseRecyclerAdapter 并在 Android 上乘以项目类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:36 25 4
gpt4 key购买 nike

我想添加 2 种类型:-

  1. 带图片
  2. 没有图片

在我的 recyclerview 中。我知道我需要覆盖 FirebaseRecyclerAdapter 中的方法,但我不知道该怎么做。请帮我解决这个问题。

@Override
public int getItemViewType(int position) {
return mModelLayout;
}


abstract protected void populateViewHolder(VH viewHolder, T model, int position);

所以我想通过 int(1 - 有图像,2 - 无)从 T-model 类型的项目中获取并根据此信息更改 mModelLayout。我可以在那里添加 if else 语句吗?

最佳答案

这个答案建立在 hatboysam 的答案之上。我花了很长时间才弄清楚所有东西是如何组合在一起的,所以我想我应该在这里详细描述解决方案:

    mRecyclerViewAdapter = new FirebaseRecyclerAdapter<DataObjectModel, ViewHolder>(
DataObjectModel.class, R.layout.defaultitem_layout, ViewHolder.class, mDatabaseRef) {

@Override
public void populateViewHolder(ViewHolder viewholder, final DataObjectModel dataobject, int position) {

if (getItemViewType(position) == R.layout.my_image_item){
viewholder.setName(dataobject.getName());
}
else if (getItemViewType(position) == R.layout.my_no_image_item{
viewholder.setText(dataobject.getText());
}


@Override
public int getItemViewType(int position) {
DataObjectModel dataobject = getItem(position);
if (dataobject.getType() != null && dataobject.getType().equals("image")) {
// Layout for an item with an image
return R.layout.my_image_item);
} else if (dataobject.getType() != null && dataobject.getType().equals("noimage")) {
// Layout for an item without an image
return R.layout.my_no_image_item;
}
}
};

//getName() 和 setText() 是你必须在“public static class ChatHolder extends RecyclerView.ViewHolder”类中编写的方法

//这是一个很好的 ViewHolder 类

    public static class ViewHolder extends RecyclerView.ViewHolder {
View mView;

public ViewHolder (View itemView) {
super(itemView);
mView = itemView;
}

public void setName(String name) {
TextView field = (TextView) mView.findViewById(R.id.name_text);
field.setText(name);
}

public void setText(String text) {
TextView field = (TextView) mView.findViewById(R.id.message_text);
field.setText(text);
}
}

关于android - FirebaseRecyclerAdapter 并在 Android 上乘以项目类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38940614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com