【发布时间】:2015-04-19 06:30:19
【问题描述】:
嗯,我有一个水平线性布局,带有自定义类的项目。
我想要什么:更改我点击的项目的背景颜色(就像它被选中时一样)。如果用户单击其他项目,则第一个再次变为原始颜色,新的变为“选定颜色”
我的问题是什么:当 listView 的所有项目都适合屏幕(在本例中为 3 个项目)时,这可以正常工作。如果有更多项目,比如说 7,如果用户单击项目编号 0,它会更改颜色,但是如果用户滚动到最后一个项目并单击项目编号 6,它会更改颜色,但项目 0 不会更改。如果两个项目都可见,则工作正常。
这是我的 onItemClickListener 的代码。
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(it.sephiroth.android.library.widget.AdapterView<?> parent, View view, int position, long id) {
for(int i=0;i<listView.getCount();i++){
try{
getViewByPosition(i, listView).setBackgroundResource(R.drawable.skin);
listView.getChildAt(i).setBackgroundResource(R.drawable.skin);
}
catch(Exception e){
System.out.println(e.toString());
}
}
view.setBackgroundResource(R.drawable.skin_selected);
}
});
【问题讨论】:
标签: android listview android-listview background-color onitemclicklistener