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

问题描述 投票:0回答:1

我正在从事坦克游戏。在这个坦克游戏中,我想显示玩家可以使用的物品(剑,烟火,火炮)。我想通过列表视图和array-dapter实现这一目的。我做了一个自定义的ArrayAdapter,就像我在很多答案中发现它一样,但是没有用。设置适配器后,列表不存在。在调试项目之后,我得出的结论是适配器类中的getView方法未调用为什么?这是我的适配器类

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

}
java android android-studio adapter
1个回答
0
投票
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;
    }

也在您的主类中编写此代码:

Adapter adapter = new Adapter(context,R.layout.<Thename of your layout>,tanks.get(currentTank).getItems());
© www.soinside.com 2019 - 2024. All rights reserved.