我已经将适配器填入Listview
并且工作正常。
我的问题是如何在选中时更改特定行项目中的文本和背景颜色(使用TextView)。
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
int visiblePosition = listView1.getFirstVisiblePosition();
View view = (View)listView1.getChildAt(position);
.....
});
但它不起作用。
顺便说一下,请告诉我如何在Listview中滚动(使用自定义适配器)时阻止加载数据,或者如何在首次运行时将适配器填充到所有行中。
答案 0 :(得分:1)
它不起作用,因为每次滚动时都会重复使用列表视图的子项。
您应该更新数据并致电notifyDataSetChanged,或更新数据并使用以下内容:
int visiblePosition = mListView.getFirstVisiblePosition();
View view = mListView.getChildAt(position - visiblePosition);
if(view!=null)
{
// update the view to have a different background and other stuff...
}
关于第二种方式的说明:
第二种方式可能无法正常工作。
我不确定更改视图大小时会发生什么。