Java Android-如何在绝对位置获取ListView项?
因此,ListView适配器具有getView方法,每次更改ListView的显示时都会调用它。。。因此,第0个元素将成为视口中的第一个元素。我想 如何访问Listview中的第0个元素?不是视口中的第一个元素吗?整个ListView中的第一个元素?我想通过一个绝对索引访问元素,所以不管哪个元素是可见的,我想根据它们在ListView中的索引来访问它们Java Android-如何在绝对位置获取ListView项?,java,android,Java,Android,因此,ListView适配器具有getView方法,每次更改ListView的显示时都会调用它。。。因此,第0个元素将成为视口中的第一个元素。我想 如何访问Listview中的第0个元素?不是视口中的第一个元素吗?整个ListView中的第一个元素?我想通过一个绝对索引访问元素,所以不管哪个元素是可见的,我想根据它们在ListView中的索引来访问它们 如何实现这一点?您无法按索引访问列表视图中的任何视图,因为它正在循环使用它们,而且基本上除了您看到的视图和一些缓存之外,没有其他视图 事实上你不
如何实现这一点?您无法按索引访问
列表视图中的任何视图,因为它正在循环使用它们,而且基本上除了您看到的视图和一些缓存之外,没有其他视图
事实上你不应该这么做。如果要使用列表视图
的数据进行操作,请通过适配器
更改基础集合,以便在适配器的覆盖getView()
中,您可以决定如何呈现特定视图(在您的情况下设置什么背景色)
所以你会有这样的东西:
private class Item {
Color getBgColor {...}
}
private class MyAdapter extends BaseAdapter { // or WhateverAdapter you have
Item getItem(int id) {...}
public View getView(int position, View convertView, ViewGroup parent) {
...
convertView.setBackgroundColor(getItem(position).getBgColor());
return convertView;
}
}
onListItemClick(ListView l、View v、int position、long id)完全按照您的要求执行。position参数是列表中的实际位置,而不是元素在屏幕上的位置。我想更改项目的背景色。我不希望这种情况在点击时发生。我希望它在填充列表时发生。有什么想法吗?您必须创建一个自定义适配器才能做到这一点。查找Listview自定义适配器。关于这方面有很多教程:)好的,我如何通过适配器更改项目的背景颜色?我真的不想发垃圾邮件问这个问题,我可以用其他方式与您联系吗?