我开始使用Android编程。 我有几天有问题,我想问你是否可以帮助我。 我想展示一个带有不同布局,文本和图像的recyclerView。 我有这个代码,第一种类型,文本正在工作,但图像没有出现。
感谢。
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
Historias object = mList.get(position);
if (object != null) {
switch (object.getTipoHistoria()) {
case tipo_texto:
((CityViewHolder) holder).mTitle.setText(object.getTexto());
break;
case tipo_imagen:
StorageReference storageRef = storage.getReferenceFromUrl("gs://xx.appspot.com/imagenes/un-gato-bebe-433.jpg");
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
new RetrieveFeedTask().execute(uri.toString());
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
((EventViewHolder) holder).mImage.setImageBitmap(feed);
}
});
break;
}
}
}
答案 0 :(得分:2)
我建议使用特殊的lib从web或sd下载照片。这里有一些:
Picasso.with(context).load("path_to_image").into(imageView);
Glide.with(this).load("path_to_image").into(imageView);
答案 1 :(得分:1)
只需删除switch case,因为您知道当用户输入switch语句时,只会执行1个案例,因此只有您的设置文本被执行而不是图像
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
Historias object = mList.get(position);
holder.mTitle.setText(object.getTexto());
StorageReference storageRef = storage.getReferenceFromUrl("gs://xx.appspot.com/imagenes/un-gato-bebe-433.jpg");
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
new RetrieveFeedTask().execute(uri.toString());
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
holder.mImage.setImageBitmap(feed);
}
});
}
}
}
我建议你使用毕加索或滑动库加载图片,它超级容易加载图片
编辑。
只需使用holder
即可。而不是((EventViewHolder) holder)