首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用回收视图进行修复我想要追加一张图片

使用回收视图进行修复我想要追加一张图片
EN

Stack Overflow用户
提问于 2022-03-16 05:48:45
回答 1查看 33关注 0票数 0

我想向人们展示包括照片在内的信息。

这是User.class

代码语言:javascript
复制
public class User {

//파이어 스토어 필드 변수명과 타입이 같아야 한다. ex) 프사 라즈 INTP 구일 23
String name, mbti, region, age, profile_image;



public User(){
    //must be empty
}

public User(String name, String mbti, String region, String age, String profile_image) {
    this.name = name;
    this.mbti = mbti;
    this.region = region;
    this.age = age;
    this.profile_image = profile_image;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getMbti() { return mbti; }

public void setMbti(String mbti) {this.mbti = mbti; }

public String getRegion() { return region; }

public void setRegion(String region) { this.region = region; }

public String getAge() { return age; }

public void setAge(String age) { this.age = age; }

public String getProfile_image() { return profile_image; }

public void setProfile_image(String profile_image) { this.profile_image = profile_image; }}

下面是MyAdapter类

代码语言:javascript
复制
Context context;
ArrayList<User> userArrayList;

public MyAdapter(Context context, ArrayList<User> userArrayList) {
    this.context = context;
    this.userArrayList = userArrayList;
}

@NonNull
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View v = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
    return new MyViewHolder(v);

}

@Override
public void onBindViewHolder(@NonNull MyAdapter.MyViewHolder holder, int position) {

    User user = userArrayList.get(position);
    holder.name.setText(user. name);
    holder.mbti.setText(user.mbti);
    holder.region.setText(user.region);
    holder.age.setText(user.age);
    Glide.with(context).load(user.getProfile_image()).into(holder.imgprofile);

}

@Override
public int getItemCount() {
    return userArrayList.size();
}

public static class MyViewHolder extends RecyclerView.ViewHolder {

    TextView name, mbti, region, age;
    ImageView imgprofile;

    public MyViewHolder(@NonNull View itemView) {

        super(itemView);
        name = itemView.findViewById(R.id.tvfirstName);
        mbti = itemView.findViewById(R.id.item_mbti);
        region = itemView.findViewById(R.id.item_region);
        age = itemView.findViewById(R.id.item_age);
        imgprofile =  itemView.findViewById(R.id.main_profileimg);


    }
}

在我的MainActivity中,我使用firestore.collection()和firestore.collection,这样回收视图就可以获得人们的信息。

但是图片存储在Firebase存储->配置文件/图片-> uid.jpg中。

我是初学者,所以我不能转换代码userArrayList.add(dc.getDocument().toObject(User.class))

代码语言:javascript
复制
firestore.collection("Users")
            .whereEqualTo("mbti",mainsearch_mbti)
            .orderBy("time",Query.Direction.DESCENDING).limit(50)
            .addSnapshotListener(new EventListener<QuerySnapshot>() {
                @Override
                public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
                    if(error != null){

                        if(progressDialog.isShowing()){
                            progressDialog.dismiss();
                        }

                        Log.e("Firestore error",error.getMessage());
                        return;

                    }

                    for (DocumentChange dc : value.getDocumentChanges()){

                        if (dc.getType() == DocumentChange.Type.ADDED){
                            userArrayList.add(dc.getDocument().toObject(User.class));
                        }

                        myAdapter.notifyDataSetChanged();
                        if(progressDialog.isShowing()){
                            progressDialog.dismiss();
                        }
                    }

                }
            });
EN

回答 1

Stack Overflow用户

发布于 2022-03-16 06:47:16

您可以使用value.getDocuments()函数获取数据。

代码语言:javascript
复制
for (DocumentSnapshot snapshot : value.getDocuments()) {
                    Map<String,Object> dataMap = snapshot.getData();
                    String abc = (String) dataMap.get("abc");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71492313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档