我有一个聊天消息视图,其中显示用户名和图像和消息,在我的消息适配器类中如下
public void onBindViewHolder(final MessageViewHolder holder, int position) {
auth = FirebaseAuth.getInstance();
String currenUserId = auth.getCurrentUser().getUid();
Message c = mMessageList.get(position);
String fromUser = c.getFrom();
reference = FirebaseDatabase.getInstance().getReference().child("Users");
reference.child(fromUser).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue().toString();
String image = dataSnapshot.child("image").getValue().toString();
holder.messageName.setText(name);
if(!image.equals("default")) {
Picasso.with().load(image).placeholder(R.drawable.avatar).into(holder.messageProfile);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
holder.messageText.setText(c.getMessage());
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(c.getTime());
int mHour = calendar.get(Calendar.HOUR_OF_DAY);
int mMin = calendar.get(Calendar.MINUTE);
holder.messageTime.setText(mHour+":"+mMin);
}
我正在使用毕加索来检索图像我应该用作上下文
答案 0 :(得分:1)
你也只使用这个
Picasso.with(holder.messageProfile.getContext()).load(image).placeholder(R.drawable.avatar).into(holder.messageProfile);
答案 1 :(得分:0)
您必须使用Context
的父视图的UserViewHolder
作为
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.UserViewHolder>{
private Context context;
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
context = parent.getContext(); //use this context with picasso
return new UserViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_home_screen, parent, false));
}
答案 2 :(得分:0)
首先在全球范围内声明上下文
Context context;
之后添加构造函数
this.context = context;
将此用于图片
Glide.with(context).load(R.drawable.avatar).into(holder.messageProfile);