未调用自定义适配器中的 getView 方法

getView-method in customized Adapter is not called

我正在制作一款坦克游戏。在这个坦克游戏中,我想显示玩家可以使用的物品(盾牌、烟花、原子弹)我想用列表视图和数组适配器来实现这一点。我做了一个自定义的 ArrayAdapter,就像我在很多答案中发现的那样,但它没有用。设置适配器后,该列表不存在。在我调试项目后,我得出的结论是适配器 class 中的 getView 方法未被调用 为什么? 这是我的适配器 class

public class Adapter extends ArrayAdapter {

    private Context context;
    private ArrayList<Item> items;

    public Adapter(@NonNull Context context, ArrayList<Item> items) {
        super(context, R.layout.listview_item);
        this.context = context;
        this.items = items;

    }

    @NonNull
    @Override
    public View getView(int position,  View convertView, ViewGroup parent) {
        ViewHolder viewHolder = new ViewHolder();
        if(convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.listview_item, parent, false);
            viewHolder.imageView = convertView.findViewById(R.id.imageView);
            convertView.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder) convertView.getTag();
        }
            viewHolder.imageView.setImageBitmap(items.get(position).getImageView());

        return convertView;
    }

    static class  ViewHolder{
        ImageView imageView;

    }
}

这里我要设置适配器

public void createList(ListView listView){

    Adapter adapter = new Adapter(context,tanks.get(currentTank).getItems());
    listView.setAdapter(adapter);

}
public Adapter(@NonNull Context context, ArrayList<Item> items) {
        super(context, R.layout.listview_item);
        this.context = context;
        this.items = items;

    }

试试这个:

public MyCustomListAdapter(Context context,int resource, ArrayList<Item> items)
    {
        super(context,resource,list);
        this.context= context;
        this.resource=resource;
        this.list=list;
    }

同样在你的主 class 中写下这段代码:

Adapter adapter = new Adapter(context,R.layout.<Thename of your layout>,tanks.get(currentTank).getItems());