求解啊ListView选中项改变背景色彩后,下滚的那个也被改变了
求解啊:ListView选中项改变背景颜色后,下滚的那个也被改变了
比方说,我的手机屏幕上的ListView一共可以显示15行,我如果选中第1行,那么第1行的背景颜色被改变,但第16行也被改变了,求解啊,我改变背景的代码如下:
private View oldLinearLayout;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> paramAdapterView,
View paramView, int paramInt, long paramLong) {
if (beforeLinearLayout != null) {
oldLinearLayout.setBackgroundDrawable(null);
}
paramView.setBackgroundColor(Color.GREEN);
oldLinearLayout= paramView;
}
});
------解决方案--------------------
比方说,我的手机屏幕上的ListView一共可以显示15行,我如果选中第1行,那么第1行的背景颜色被改变,但第16行也被改变了,求解啊,我改变背景的代码如下:
private View oldLinearLayout;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> paramAdapterView,
View paramView, int paramInt, long paramLong) {
if (beforeLinearLayout != null) {
oldLinearLayout.setBackgroundDrawable(null);
}
paramView.setBackgroundColor(Color.GREEN);
oldLinearLayout= paramView;
}
});
------解决方案--------------------
//Adapter中
private int selected ;
public void setSelected(int selected) {
this.selected = selected;
notifyDataSetChanged();
}
//在getView 判断当前的position 是否是selected中的
if( position == selected){
// 按压背景
}else{
// 正常背景
}
//在Activity页面回调OnItemClickListener时
adapter.setSelected(position);