您的位置:首页 > 其它

ListView中的Button点击后相应的Item改变背景颜色

2014-11-09 16:25 302 查看
上一篇中处理了ListView中Button与Item焦点的处理,接上篇文章,本文处理点击Button后相应的Item改变背景。

效果图:



为了给用户一个良好的体验,ListView点击后,相应Item背景会高亮显示。

由于在项目中每个Item上有多个按钮,所以在实现的时候没有写ListView的OnItemClickListener事件,这就给自

己造成了很多困扰,如何点击相应的按钮后Item会自动改变颜色。首先想到的是采用Xml中的Selector来解决,可能

是不清楚一些属性的设置,最后放弃了这个想法。一边听歌放松,一边思考中,想到点击按钮后进行了Activity的跳

转,于是用startActivityForResult来实现该效果,虽然最后是实现了,但是觉得一个简单的效果这样实现特别的别扭,

而且项目中有很多Activity之间的跳转,如果这样实现后期维护感觉是相当的繁琐,遂放弃。

看到网上铺天盖地的相关资料可就是没有找到让自己眼头一亮的,最后在ListView的OnItemClickListener事件

中点击后改变背景得到启发用相同的原理实现了点击Button相应的Item背景改变。

解决方案如下:

在Button的事件监听里面对View的背景进行设置即可。

需要定义一个View来保存上一个view,当前View选中的时候,上一个View的背景需要还原

注意:View的背景还原的时候一定要和初始的一样,否则ListView的Item背景在多次点击后将会失去想要的效果。

Button的监听如下:
private class listener implements View.OnClickListener{
private View view;
public listener(View view){
this.view = view;
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(preView == null){
view.setBackgroundResource(R.color.itemselected);
preView = view;//preView定义为全局的,不在listener中定义
}else{
preView.setBackgroundDrawable(view.getBackground());
view.setBackgroundResource(R.color.itemselected);
preView = view;
}
}
}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: