Мои строки содержат кнопку, для которой в getView моего адаптера установлен собственный прослушиватель кликов.У меня есть возможность различать щелчки моей кнопки и фактические щелчки элементов строки с помощью android.Я прокручиваю список и настраиваю его для разных строк.Я предполагаю, что их проблема где-то с переработкой просмотров.
Вот мой код:
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.todays_sales_favorite_row, null);
holder.favCatBtn = (Button)convertView.findViewById(R.id.favCatBtn);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.favCatBtn.setTag(position);
holder.favCatBtn.setOnClickListener(this);
return convertView;
}
@Override
public void onClick(View v) {
int pos = (Integer) v.getTag();
Log.d(TAG, "Button row pos click: " + pos);
RelativeLayout rl = (RelativeLayout)v.getParent();
holder.favCatBtn = (Button)rl.getChildAt(0);
holder.favCatBtn.setBackgroundResource(R.drawable.icon_yellow_star_large);
}
Так что, если я нажимаю кнопку в строке 1, фон кнопки меняется, как и должно быть.Но затем, когда я прокручиваю список случайным образом, устанавливаются и другие кнопки.Затем, когда я прокручиваю обратно в положение 1, фон кнопки снова возвращается к оригиналу.
Что мне здесь не хватает?Я знаю, что я тут что-то незначительное, что я не делаю.