我正在创建一个带有视图持有者的listview适配器:
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.activity_list_layout, null);
holder = new ViewHolder();
//Layout Code here
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
设置Onclick监听器:
holder.view.setOnClickListener(titleListener);
final OnClickListener titleListener = new OnClickListener() {
@Override
public void onClick(View v) {
holder.view.setBackgroundResource(R.drawable.top_bar);
notifyDataSetChanged();
}
};
在Onclick listner中,我更改了所选视图的背景图像。但在这里,对于选定的项目,对于同一列表视图中的其他项目,背景图像正在发生变化。请建议我需要做哪些修改才能仅为所选项目更改BG。
更新了getview的代码:
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;
请检查图像,我选择了行“这个迪拜社区”,但背景也改变了“我很有信心”。还有一些在单击事件中选择的其他行
发布于 2014-03-11 14:43:07
尝尝这个
holder.view.setOnClickListener(titleListener);
final OnClickListener titleListener = new OnClickListener() {
@Override
public void onClick(View v) {
Drawable drawable = res.getDrawable(R.drawable.newImage); //new Image
holder.view..setBackgroundDrawable(drawable);
notifyDataSetChanged();
}
};
发布于 2014-03-11 14:45:14
Relativelayout rlayout=holder.view;
请添加上行...
holder.view.setOnClickListener(titleListener);
final OnClickListener titleListener = new OnClickListener() {
@Override
public void onClick(View v) {
rlayout.setBackgroundResource(R.drawable.top_bar);
notifyDataSetChanged();
}
};
发布于 2014-03-11 14:49:58
单击时使用选择器选择任何行:
list_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@color/android:on_press" android:state_enabled="true" android:state_pressed="true"/>
<item android:drawable="@color/android:activated_drawble" android:state_activated="true" android:state_focused="true"/>
<item android:drawable="@color/android:normal_drawble"/>
创建此xml并在列表行的后台应用。
然后在单击持有者视图时对其应用setActivated(true)。就是这样。这是实现选择器的正确方法。
https://stackoverflow.com/questions/22318068
复制相似问题