Android 如何重写getItem()?

Android 如何重写getItem()?,android,android-arrayadapter,android-adapter,Android,Android Arrayadapter,Android Adapter,这些是守则的一部分: 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; } p

这些是守则的一部分:

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;
    }
}

公共类适配器扩展了ArrayAdapter{
私有资源ID;
公共资源适配器(上下文,int textViewResourceId,
列出对象){
超级(上下文、textViewResourceId、对象);
resourceId=textViewResourceId;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
水果水果=getItem(position);//获取当前水果实例。
View=LayoutInflater.from(getContext()).inflate(resourceId,null);
ImageView水果图像=(ImageView)view.findViewById(R.id.fruit\u图像);
TextView水果名=(TextView)view.findViewById(R.id.fruit\u name);
setImageResource(fruit.getImageId());
setText(fruit.getName());
返回视图;
}
}

公共类MainActivity扩展活动{
public List foultlist=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits();
水果适配器=新的水果适配器(MainActivity.this,
R.布局图、水果项目、水果清单);
ListView ListView=(ListView)findViewById(R.id.list\u视图);
setAdapter(适配器);
}
私人有限公司(){
水果苹果=新水果(“苹果”,R.drawable.apple);
添加(苹果);
水果香蕉=新水果(“香蕉”,R.drawable.香蕉);
水果列表。添加(香蕉);
水果橙=新水果(“橙色”,R.drawable.orange);
水果列表。添加(橙色);
水果西瓜=新水果(“西瓜”,R.drawable.西瓜);
水果列表。添加(西瓜);
水果梨=新水果(“梨”,R.可摘梨);
水果列表。添加(梨);
水果葡萄=新水果(“葡萄”,R.drawable.grape);
水果列表。添加(葡萄);
水果菠萝=新水果(“菠萝”,R.drawable.菠萝);
水果清单。加入(菠萝);
水果草莓=新水果(“草莓”,R.drawable.草莓);
水果列表。添加(草莓);
水果樱桃=新水果(“樱桃”,R.drawable.cherry);
水果列表。添加(樱桃);
水果芒果=新水果(“芒果”,R.drawable.mango);
水果列表。添加(芒果);
}
}
getItem()
方法返回一个
字符串
,但我需要一个
Fruit
实例。如何覆盖它?我不知道如何使用位置参数


以上都是源代码。我不放XML。fruit_item.XML包含一个TextView和一个ImageView。

将列表分配给一个类变量并访问它

public class FruitAdapter extends ArrayAdapter<Fruit> {

       private int resourceId;
       private List<Fruit> mObjects;     
       public FruitAdapter(Context context, int textViewResourceId,
           List<Fruit> objects) {
               super(context, textViewResourceId, objects);
               resourceId = textViewResourceId;
                mObjects =objects;
       }
       @Override
       public View getView(int position, View convertView, ViewGroup parent){
          Fruit fruit = mObjexts.get(position); // get the current Fruit instance.
          View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
          ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
          TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);
          fruitImage.setImageResource(fruit.getImageId());
          fruitName.setText(fruit.getName());
          return view;
  }
}

将列表分配给类变量并访问它

public class FruitAdapter extends ArrayAdapter<Fruit> {

       private int resourceId;
       private List<Fruit> mObjects;     
       public FruitAdapter(Context context, int textViewResourceId,
           List<Fruit> objects) {
               super(context, textViewResourceId, objects);
               resourceId = textViewResourceId;
                mObjects =objects;
       }
       @Override
       public View getView(int position, View convertView, ViewGroup parent){
          Fruit fruit = mObjexts.get(position); // get the current Fruit instance.
          View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
          ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
          TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);
          fruitImage.setImageResource(fruit.getImageId());
          fruitName.setText(fruit.getName());
          return view;
  }
}

谢谢..但是你能帮我覆盖getItem()吗?我想知道如何使用它。我在MainActivity中得到了一个列表fruitList=new ArrayList()。我根据一本书键入了代码,但它似乎没有覆盖getItem()。谢谢..但是你能帮我覆盖getItem()吗?我想知道如何使用它。我得到了一个列表fruitList=new ArrayList()。在MainActivity中。我根据一本书键入代码,但它似乎没有覆盖getItem()。谢谢..但是你能帮我覆盖getItem()吗?我想知道如何使用它。在MainActivity中,我得到了一个列表fruitList=new ArrayList()。我根据一本书键入代码,但它似乎没有覆盖getItem())
public class FruitAdapter extends ArrayAdapter<Fruit> {

       private int resourceId;
       private List<Fruit> mObjects;     
       public FruitAdapter(Context context, int textViewResourceId,
           List<Fruit> objects) {
               super(context, textViewResourceId, objects);
               resourceId = textViewResourceId;
                mObjects =objects;
       }
       @Override
       public View getView(int position, View convertView, ViewGroup parent){
          Fruit fruit = mObjexts.get(position); // get the current Fruit instance.
          View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
          ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
          TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);
          fruitImage.setImageResource(fruit.getImageId());
          fruitName.setText(fruit.getName());
          return view;
  }
}
@Override
       public Fruit getItem(int position) {
             mObjects.get[position];
       }