我有一个ReciclerView,它使用一个名为“SimpleItemRecyclerViewAdapter”的适配器。 ReciclerView中的每个项目都位于项目的“drawable”文件夹中。我能够在TextView上设置测试,但我不确定如何为图像执行此操作。这里是我得到的输出...图像应该出现在黑色方块上,并且是一个ImageView小部件。在ViewAdapter上加载图像资源
这里是我的适配器代码:
package uk.co.example.calculator.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import uk.co.example.calculator.R;
import uk.co.example.calculator.ui.activities.Currency;
public class SimpleItemRecyclerViewAdapter extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.RecyclerViewSimpleTextViewHolder> {
// The items to display in your RecyclerView
private List<Currency> items;
// Provide a suitable constructor (depends on the kind of dataset)
public SimpleItemRecyclerViewAdapter(List<Currency> items) {
this.items = items;
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return this.items.size();
}
// Replace the contents of a view (invoked by the layout manager)
// Involves populating data into the item through holder
@Override
public void onBindViewHolder(RecyclerViewSimpleTextViewHolder holder, int position) {
Currency currency = items.get(position);
holder.getName().setText(currency.name);
holder.getSymbol().setText(currency.symbol);
holder.getAsset().?????????; // WHAT SHOULD I PUT HERE TO LOAD THE IMAGE FROM THE RAW FOLDER
}
// Create new items (invoked by the layout manager)
// Usually involves inflating a layout from XML and returning the holder
@Override
public RecyclerViewSimpleTextViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View itemView = LayoutInflater.from(viewGroup.getContext()).
inflate(R.layout.currency_list_card_layout, viewGroup, false);
return new RecyclerViewSimpleTextViewHolder(itemView);
}
public class RecyclerViewSimpleTextViewHolder extends RecyclerView.ViewHolder {
private TextView name;
private TextView symbol;
private ImageView asset;
public RecyclerViewSimpleTextViewHolder(View v) {
super(v);
name = (TextView) v.findViewById(R.id.currency_name);
symbol = (TextView) v.findViewById(R.id.currency_symbol);
asset = (ImageView) v.findViewById(R.id.currency_asset);
}
public TextView getName() {
return name;
}
public TextView getSymbol() {
return symbol;
}
public ImageView getAsset() {
return asset;
}
}
}
如何显示包含在文件夹中绘制图像上的任何详细的帮助将不胜感激。
Hi @ Jonty800。谢谢回复。我认为你的回答很好,但是在实施你的解决方案后,Android Studio会警告我“无法解析符号getResources”。任何想法如何我可以解决这个错误?提前致谢。 – CBA110
@ CBA110 getResources是Activity或Context类的一部分。在一个适配器中,你必须传递一个上下文。因此,将适配器的构造更改为'public SimpleItemRecyclerViewAdapter(列表项目,Context上下文)',然后使用'this.context = context;'设置一个全局变量。然后你可以做'context.getResources('需要的时候 –
Jonty800