图像未使用firebaseRecyclerAdapter加载 [英] image are not getting loaded using firebaseRecyclerAdapter

查看:74
本文介绍了图像未使用firebaseRecyclerAdapter加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一切正常,但图像未加载

来自模拟器的图片

此图像显示image-getimgUrl的值日志

此图像来自Firebase数据库

她的问题是image和getimgUrl = NULL的值

公共类MainScreen扩展了AppCompatActivity {

public class MainScreen extends AppCompatActivity {

RecyclerView recyclerView;
DatabaseReference mRef;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_screen);


    recyclerView = (RecyclerView)findViewById(R.id.recyclerView_main);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getBaseContext()));


    mRef = FirebaseDatabase.getInstance().getReference("Data");

    FirebaseRecyclerAdapter<Model,mViewHolder> adapter =
            new FirebaseRecyclerAdapter<Model, mViewHolder>(Model.class,R.layout.row,mViewHolder.class,mRef) {
        @Override
        protected void populateViewHolder(mViewHolder viewHolder, Model model, int position) {

            viewHolder.setTitle(model.getTitle());
            viewHolder.setImage(getBaseContext(),model.getImgUrl());

            Log.e("getImgUrl", "value : "+model.getImgUrl());
            Log.e("getTitle", "value : "+model.getTitle());
        }
    };

    recyclerView.setAdapter(adapter);
}


public static class mViewHolder extends RecyclerView.ViewHolder{
    View mview;

    public mViewHolder(View itemView) {
        super(itemView);


        mview = itemView;

    }


    public void setTitle(String title){

        TextView postTitle = (TextView) mview.findViewById(R.id.text_row);
        postTitle.setText(title);

        Log.e("title", "value : "+title);
        }
    public void setImage(Context ctx,String image){

        ImageView postImage = (ImageView) mview.findViewById(R.id.image_row);

        Picasso.with(ctx).load(image).into(postImage);

        Log.e("image", "value : "+image);
    }
}

}

推荐答案

您的模型错误.试试这个:

Your model is wrong. Try this:

public final class Model {
    // Excluding these fields because proguard can make them public
    @Exclude private String mTitle;
    @Exclude private String mImage;

    public Model() {
        // Needed for Firebase
    }

    @Keep
    public String getTitle() {
        return mTitle;
    }

    @Keep
    public void setTitle(String title) {
        mTitle = title;
    }

    @Keep
    public String getImage() {
        return mImage;
    }

    // The "image" part of `setImage` needs to match what it's called in your database.
    // Or you could use `@PropertyName("nameInTheDatabase")`
    @Keep
    public void setImage(String image) {
        mImage = image;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Model model = (Model) o;

        return (mTitle == null ? model.mTitle == null : mTitle.equals(model.mTitle))
                && (mImage == null ? model.mImage == null : mImage.equals(model.mImage));
    }

    @Override
    public int hashCode() {
        int result = mTitle == null ? 0 : mTitle.hashCode();
        result = 31 * result + (mImage == null ? 0 : mImage.hashCode());
        return result;
    }

    @Override
    public String toString() {
        return "Model{" +
                "mTitle='" + mTitle + '\'' +
                ", mImage='" + mImage + '\'' +
                '}';
    }
}

这篇关于图像未使用firebaseRecyclerAdapter加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆