【发布时间】:2021-05-21 20:55:35
【问题描述】:
我想做的是从drawable加载一些图像。事实上,我想加载像R.drawable."string" 这样的图像,但不幸的是找不到将字符串放入其中的方法。此外,字符串是从 MySQL 数据库加载的。
这里你可以看到代码。
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ProductViewHolder> {
private Context mContext;
private ArrayList<Product> mProducts;
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
public ProductAdapter(Context context, ArrayList<Product> products) {
mContext = context;
mProducts = products;
}
@NonNull
@Override
public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext).inflate(R.layout.product, parent, false);
return new ProductViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ProductViewHolder holder, int position) {
Product currentProduct = mProducts.get(position);
String name = currentProduct.getName();
String photo = currentProduct.getPhoto();
double price = currentProduct.getPrice();
holder.textViewName.setText(name);
holder.textViewPrice.setText(price + "€");
int id = mContext.getResources().getIdentifier(photo, "drawable", mContext.getPackageName());
Picasso.get().load(id).into(holder.imageView);
}
@Override
public int getItemCount() {
return mProducts.size();
}
public class ProductViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public TextView textViewName;
public TextView textViewPrice;
public ProductViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.image_view);
textViewName = itemView.findViewById(R.id.textViewName);
textViewPrice = itemView.findViewById(R.id.textViewPrice);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
mListener.onItemClick(position);
}
}
}
});
}
}
}
如您所见,我尝试了使用谷歌搜索发现的 int id = mContext.getResources().getIdentifier(photo, "drawable", mContext.getPackageName());,但似乎不起作用...
非常感谢您提供的任何帮助。
【问题讨论】:
-
您是否尝试从应用的内部存储中加载图像??
-
是的,图片已经加载到drawable文件夹中
-
这实际上很有帮助。我会检查一下。谢谢@Praveen
标签: java android android-drawable picasso