gpt4 book ai didi

java - 自定义Adapter中的getView方法没有被调用

转载 作者:行者123 更新时间:2023-12-02 09:26:51 25 4
gpt4 key购买 nike

我正在开发一款坦克游戏。在这个坦克游戏中,我想显示玩家可以使用的元素(盾牌,烟花,原子弹)我想用 ListView 和数组适配器来实现这一点。我制作了一个定制的 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);

}

最佳答案

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

关于java - 自定义Adapter中的getView方法没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com