Я заполняю ListView из ArrayList и в методе getView() адаптера. Я пытаюсь установить цвет фона определенного элемента на основе свойства пользователя, которое он отображается.Изменение цвета listviewitem в адаптере дает неожиданные результаты
Код, вставленный ниже, дает мне неожиданные результаты при прокрутке списка. Когда я войти в приложение первые элементы, отображаемые окрашены правильно, но, как я прокручивать список окрашивает некоторые пункты зеленые, несмотря на то, что тестируемый свойство равно 0.
public View getView(int position, View convertView, ViewGroup parent) {
User user = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_user, parent, false);
}
if (user.newStatus > 0) convertView.setBackgroundColor(Color.GREEN);
//some other stuff happens here
return convertView;
}
В случае, если я не объяснить ну, хотя user.newStatus
равно 0, некоторые элементы ListViewItems становятся цветными зелеными независимо.
делать, если еще если (user.newStatus> 0) { convertView.setBackgroundColor (Color.GREEN); } else { convertView.setBackgroundColor (Color.WHITE); } – Nik
О, боже, спасибо. Это было так очевидно. Мне нужно сделать перерыв :) EDIT: На самом деле это было не так очевидно, так как это не очень логично. Связано ли это с повторными взглядами? Так как по умолчанию он должен быть белым. – HomeIsWhereThePcIs
@HomeIsWhereThePcIs, попробуйте http://stackoverflow.com/questions/34741895/list-view-item-selected-background-changed-it-changes-other-item-also/34742289#34742289 –