当前位置: 首页 > 知识库问答 >
问题:

无法将字符串类型的对象转换为位图类型

岳枫
2023-03-14
private void ReadPosts() {
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("posts");

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                postsList.clear();

                for (DataSnapshot snapshot1 : snapshot.getChildren()) {
                    Posts post = snapshot1.getValue(Posts.class);
                    for (String id : followingList) {
                        if (post.getPublisher().equals(id)) {
                            postsList.add(post);
                        }
                    }
                }

                postsAdapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }
public class Posts {

    private Bitmap postImage;
    private String postText;
    private String publisher;
    private String postId;


    public Posts(Bitmap postImage, String postText, String publisher, String postId) {
        this.postImage = postImage;
        this.postText = postText;
        this.publisher = publisher;
        this.postId = postId;
    }


    public Posts() {
    }


    public String getPostId() {
        return postId;
    }

    public void setPostId(String postId) {
        this.postId = postId;
    }

    public String getPublisher() {
        return publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public Bitmap getPostImage() {
        return postImage;
    }

    public void setPostImage(Bitmap postImage) {
        this.postImage = postImage;
    }


    public String getPostText() {
        return postText;
    }

    public void setPostText(String postText) {
        this.postText = postText;
    }
}

共有1个答案

司马庆
2023-03-14

问题是,来自数据库的快照返回带有字符串(可能是图像的链接)的postImage,并且在您的model类中,postImage是用位图声明的。因此,字符串不能直接转换为位图。因此,您必须像这样更改model类:

专用位图位置;专用字符串位置;

然后您必须从链接加载图像(可能使用Glide):

StorageReference ref = storageReference.child(posts.postImage).getDownloadUrl();
Glide.with(this /* context */)
        .using(new FirebaseImageLoader())
        .load(ref)
        .into(imageView);
Glide.with(this /* context */)
        .load(posts.postImage)
        .into(imageView);
implementation 'com.github.bumptech.glide:glide:4.12.0'
 类似资料:
  • 问题内容: 我收到错误消息: 这是我的代码: 问题答案: 在返回一个对象的资源到你的变量,而不是一个字符串。 您需要将其循环,然后访问记录。您只是不能直接将其用作变量。 编码…

  • 问题内容: 我要求Google帮我,我没有运气。:-(以下是产生错误的特定代码: 整个功能如下: 如果我错过了一些愚蠢的事情,请原谅我。谁能告诉我是什么引起了这个问题??? 问题答案: 问题在于$ uname是一个对象,而不是字符串。您需要调用$ uname的方法之一来访问数据。 应该这样做(或上述解决方案之一)。

  • 问题内容: 我在一个名为Film_Release的字段中有一个表,该表的字符串值格式为 2012 年 4月20日 ( 星期五) 我正在遍历,我想在日期时间将它们转换并将其推出到另一个表中。我的第二张表有一个名为Films_Date的列,其格式为DATE。我收到此错误 DateTime类的对象无法转换为字符串 然后,我通过插入命令将$ newdate插入表中。 为什么会出现这样的错误? 问题答案:

  • 问题内容: 显示值时出现错误: 在php中,来自数据库($ thedate)的值为“ 2015-05-05 21:52:31.000” 我如何格式化它以便能够将它作为字符串显示在php页面上?当前,它显示错误“类DateTime的对象无法转换为字符串”。 问题答案: 您有一个对象,因此必须使用它来格式化输出,例如

  • 我有一个用盐散列加密密码的类。 但是,如果要向类传递null,则会出现以下错误: 当我使用类时,我得到错误:“不能隐式转换类型字符串到Byte[]”

  • 这是我的数据库结构。我正试图获取订单的详细信息。 这是代码 但我得到了这个错误 这是我得到错误的线 有什么帮助或建议吗?