如何在android数据绑定中使用recyclerview填充Firebase存储映像

如何在android数据绑定中使用recyclerview填充Firebase存储映像,android,firebase,android-recyclerview,android-databinding,firebase-storage,Android,Firebase,Android Recyclerview,Android Databinding,Firebase Storage,我有一个recyclerview,它通过数据绑定填充数据。以前我是在毕加索定制绑定适配器的帮助下填充图像的,但现在我升级到firebase存储,但没有获得代码来填充recyclerview。请提供帮助。下面是一个示例,我们存储指向存储的URL,然后使用Glide将其下载到回收器视图中 // Chat message text can contain a download URL or text public class ChatMessage { public String name;

我有一个recyclerview,它通过数据绑定填充数据。以前我是在毕加索定制绑定适配器的帮助下填充图像的,但现在我升级到firebase存储,但没有获得代码来填充recyclerview。请提供帮助。

下面是一个示例,我们存储指向存储的URL,然后使用Glide将其下载到回收器视图中

// Chat message text can contain a download URL or text
public class ChatMessage {
    public String name;
    public String message;

    public ChatMessage() {
    }

    public ChatMessage(String name, String message) {
        this.name = name;
        this.message = message;
    }
}

// Use a custom ViewHolder populated from the chat message
public class ChatMessageViewHolder extends RecyclerView.ViewHolder {
    private static final String TAG = "ChatMessageViewHolder";
    private final Activity activity;

    TextView name, message;
    ImageView image;

    public ChatMessageViewHolder(Activity activity, View itemView) {
        super(itemView);
        this.activity = activity;
        name = (TextView) itemView.findViewById(android.R.id.text1);
        message = (TextView) itemView.findViewById(android.R.id.text2);
        image = new ImageView(activity);
        ((ViewGroup)itemView).addView(image);

    }

    public void bind(ChatMessage chat) {
        name.setText(chat.name);
        if (chat.message.startsWith("https://firebasestorage.googleapis.com/") || chat.message.startsWith("content://")) {
            message.setVisibility(View.INVISIBLE);
            image.setVisibility(View.VISIBLE);
            // Use Glide (you could use Picaso) to load the image
            Glide.with(activity)
                    .load(chat.message)
                    .into(image);
        }
        else {
            message.setVisibility(View.VISIBLE);
            image.setVisibility(View.GONE);
            message.setText(chat.message);
        }
    }
}

并详细说明如何在完整的应用程序中执行此操作。下面是一个示例,我们存储指向存储的URL,然后使用Glide将其下载到回收器视图中

// Chat message text can contain a download URL or text
public class ChatMessage {
    public String name;
    public String message;

    public ChatMessage() {
    }

    public ChatMessage(String name, String message) {
        this.name = name;
        this.message = message;
    }
}

// Use a custom ViewHolder populated from the chat message
public class ChatMessageViewHolder extends RecyclerView.ViewHolder {
    private static final String TAG = "ChatMessageViewHolder";
    private final Activity activity;

    TextView name, message;
    ImageView image;

    public ChatMessageViewHolder(Activity activity, View itemView) {
        super(itemView);
        this.activity = activity;
        name = (TextView) itemView.findViewById(android.R.id.text1);
        message = (TextView) itemView.findViewById(android.R.id.text2);
        image = new ImageView(activity);
        ((ViewGroup)itemView).addView(image);

    }

    public void bind(ChatMessage chat) {
        name.setText(chat.name);
        if (chat.message.startsWith("https://firebasestorage.googleapis.com/") || chat.message.startsWith("content://")) {
            message.setVisibility(View.INVISIBLE);
            image.setVisibility(View.VISIBLE);
            // Use Glide (you could use Picaso) to load the image
            Glide.with(activity)
                    .load(chat.message)
                    .into(image);
        }
        else {
            message.setVisibility(View.VISIBLE);
            image.setVisibility(View.GONE);
            message.setText(chat.message);
        }
    }
}

详细说明如何在一个完整的应用程序中实现这一点

我制作了关于如何将图像获取到firebase recyleradupter的视频我制作了关于如何将图像获取到firebase recyleradupter的视频