Ну, у меня есть горизонтальный LinearLayout с элементами пользовательского класса.
Что я хочу: изменить цвет фона элемента, на который я нажал (например, если он выбран). Если пользователь щелкнет другой элемент, первый снова изменится на исходный цвет, а новый изменится на «выбранный цвет».
В чем моя проблема: это прекрасно работает, когда все элементы 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);
}
});