I am creating a listview adapter with a view holder:
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.activity_list_layout, null);
holder = new ViewHolder();
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
setting Onclick Listener:
holder.view.setOnClickListener(titleListener);
final OnClickListener titleListener = new OnClickListener() {
@Override
public void onClick(View v) {
holder.view.setBackgroundResource(R.drawable.top_bar);
notifyDataSetChanged();
}
};
Inside the Onclick list, I change the background image of the selected view. But here, with the item selected, for other items in the same list, the background image changes. Please tell me what changes I need to make in order to change BG only for the selected item.
Updated code to get:
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(
R.layout.activity_news_list_layout, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.image = (ImageView) convertView
.findViewById(R.id.thumbImage);
holder.view = (RelativeLayout) convertView.findViewById(R.id.tView);
holder.opacityView = (View) convertView
.findViewById(R.id.opacity_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.view.setOnClickListener(titleListener);
final OnClickListener titleListener = new OnClickListener() {
@Override
public void onClick(View v) {
holder.view.setBackgroundResource(R.drawable.top_bar);
notifyDataSetChanged();
}
};
holder.view.setOnClickListener(titleListener);
return convertView;
Please check the image, I selected the line βThis is a community in Dubai,β but the background has changed to βI was sure.β There are other rows that were selected in the click event.

source
share