80,472
社区成员




public class Fruit {
private String name;
private int imageId;
public Fruit(String name,int imageId)
{
this.name=name;
this.imageId=imageId;
}
public String getName()
{
return name;
}
public int getImageId()
{
return imageId;
}
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
private List<Fruit> mFruitList;
static class ViewHolder extends RecyclerView.ViewHolder
{
View fruitView;
ImageView fruitImage;
TextView fruitName;
public ViewHolder(View view)
{
super(view);
fruitView=view;
fruitImage=(ImageView)view.findViewById(R.id.fruit_image);
fruitName=(TextView)view.findViewById(R.id.fruit_name);
}
}
public FruitAdapter(List<Fruit> fruitList)
{
mFruitList=fruitList;
}
@Override
public FruitAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);
final ViewHolder holder=new ViewHolder(view);
holder.fruitView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int possition=holder.getAdapterPosition();
Fruit fruit =mFruitList.get(possition);
Toast.makeText(view.getContext(),"you cicked view"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
holder.fruitImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int possition=holder.getAdapterPosition();
Fruit fruit =mFruitList.get(possition);
Toast.makeText(view.getContext(),"you cicked image"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
return holder;
}
@Override
public void onBindViewHolder(FruitAdapter.ViewHolder holder, int position) {
Fruit fruit=mFruitList.get(position);
holder.fruitImage.setImageResource(fruit.getImageId());
holder.fruitName.setText(fruit.getName());
}
@Override
public int getItemCount() {
return mFruitList.size();
}
}
我想知道:为什么适配器需要Fruit这个类,这个类的数据是怎么传入适配器的 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {// 初始化数据
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "name" + (i + 1));
map.put("imageId", i + 1);
list.add(map);
}
for (int i = 0; i < list.size(); i++) {// 取出数据
String name = list.get(i).get("name").toString();
int imageId = (int) list.get(i).get("imageId");
System.out.println(name);
System.out.println(imageId);
}
public FruitAdapter(List<Fruit> fruitList)
{
mFruitList=fruitList;
}