gpt4 book ai didi

android - 多次调用 baseAdapter 的 getCount()

转载 作者:行者123 更新时间:2023-11-29 01:39:05 24 4
gpt4 key购买 nike

我有一个扩展 BaseAdapter 的类,我用它来为抽屉内的 listView 的每一行插入一个图标和一个 textView

public class NavRightDrawerListAdapter extends BaseAdapter {

private Context context;
LinkedList<String> userNameUsedForListView;
Map<String, Bitmap> urlUserImage;

public NavRightDrawerListAdapter(Context context, LinkedList<String> userNameUsedForListView, Map<String, Bitmap> returnBitMapFromURL) {
this.context = context;
this.userNameUsedForListView = userNameUsedForListView;
this.urlUserImage = returnBitMapFromURL;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
int count = 0;
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.drawer_list_of_action, null);
}

ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
TextView txtTitle = (TextView) convertView.findViewById(R.id.title);

imgIcon.setImageBitmap(urlUserImage.get(userNameUsedForListView.get(count)));
txtTitle.setText(userNameUsedForListView.get(count));
count++;
return convertView;
}

@Override
public int getCount() {
return userNameUsedForListView.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

我的列表大小是 1,通常 getView 被调用了 1 次,但是 getCount 被调用了 6 次?为什么?是正常行为吗?

我没有实现方法 getItem()getItemId(),因为我不需要它们,所以我必须实现它们?

非常感谢。

最佳答案

在 AdapterView 准备好并布置其 subview 时,可以调用任意次数的适配器方法。所以,是的,这很正常。

我找不到明确说明 getCount() 就是这种情况的来源,但是 this answer通过 Romain Guy请注意如何不能保证 getView() 将被调用多少次。可以看出该方法将如何与 getCount() 相互作用,因此也需要调用不确定的次数。

关于android - 多次调用 baseAdapter 的 getCount(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957224/

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