十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最近遇到了一个问题,在用到listview时,想在listview的item点击后显示高亮的效果,但是在activity中写listview的onitemclick事件中写变色效果后,点击可以变色,但是在listview滑动后,这个效果竟然消失了?很是纠结,为什么呢?原因没有搞太懂,好像是在滑动的时候又触发了adapter,所以导致效果消失。后来找到一种解决办法,分享下:
成都创新互联自2013年起,先为临夏等服务建站,临夏等地企业,进行企业商务咨询服务。为临夏企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
在listview的adapter中添加如下方法:
/**
* 增加用户点击时,获得位置,并改变颜色
* @param pos
*/
public void setSelectedPosition(int pos) {
selectedPos = pos;
// inform the view of this change
notifyDataSetChanged();
}
public int getSelectedPosition() {
return selectedPos;
}
然后在listview的onitemonclick事件时调用这个方法:
public class MeasureitemListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView> arg0, View arg1, int arg2,
long arg3) {
measurelistadapter.setSelectedPosition(arg2);
datalDialog= new LoadDialogDao(getActivity(),"数据加载中...");
datalDialog.show();
Map
measure_id = map.get("measuerid");
getData(measure_id);
}
};
效果就是点击后,listview被点击的部分会显示高亮效果,也可以根据自己的需要设置效果。
有需要的可以从github 下载我的原码,地址是:https://github.com/maliankun/listview/archive/master.zip