【发布时间】:2014-03-11 06:29:43
【问题描述】:
我正在创建一个带有视图支架的列表视图适配器:
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 列表器中,我更改了所选视图的背景图像。但是在这里,对于选定的项目,对于同一列表视图中的其他项目,背景图像正在发生变化。请建议我需要进行哪些修改才能仅更改所选项目的 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;
请检查图片,我选择了“这个迪拜社区”这一行,但背景也更改为“我很自信”。在点击事件中也选择了其他一些行
【问题讨论】:
-
请在getView()中显示所有代码
-
我觉得你的问题类似于this...
-
你能不能试着设置这样的背景
v.setBackgroundResource(R.drawable.top_bar);即使你必须编写更多代码来管理视图。 -
@GopalRao 试过但结果相同 :(
-
为什么要在适配器内设置
onClickListener?如果适配器应用于ListView,您不应该处理ListView的setOnItemClickListener中的事件吗?
标签: android listview android-listview android-adapter