Android 实现ListView的点击变色的实例
Android 实现ListView的点击变色的实例
我做了一个音乐播放器,其中用ListView显示歌曲列表,当我点击某一首歌时,希望这首歌所在的item的背景颜色改变,以突出显示所选择的歌曲。
首先我想到的是在ItemClickListener里面写,如下:
private View formerView=null; private class ListViewClickListener implements OnItemClickListener{ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if(formerView!=null){ formerView.setBackgroundColor(formerView.getResources().getColor(R.color.background_white)); } arg1.setBackgroundColor(arg1.getResources().getColor(R.color.item_blue)); formerView=arg1; } }
当选中一个item,就改变颜色,接着又选中一个item的时候,将前一个item还原为之前的颜色。但是我发现一个问题,就是当我选中一个item的时候,不止这一个item的颜色会改变,往下滑动发现后面还有几个item的颜色也被改变了。是不是onItemClick方法里面的View arg1这个参数是随着屏幕上显示的内容改变而变化的呢?我不敢乱说,但这个办法是行不通的。
后来发现原来有一个非常简单的办法,Android早已想到了我们会需要这个功能,直接提供了一个方法实现这个功能。
localMusicListView.setSelector(R.color.item_blue);
直接给ListView添加这样一个方法即可。完美实现这个功能。
以上就是Android listview 点击变色的实现,本站关于Android 开发的文章还有很多,希望大家搜索查阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android ListView中headerview的动态显示和隐藏的实现方法
Android ListView中headerview的动态显示和隐藏的实现方法 1.动态设置headerview的方法 动态设置headerview有两个思路. 方法一 将header的布局写在list item的布局文件中,在adapter中通过判断position的值是否为0动态控制其显示或隐藏. 代码示例: item.xml布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x
-
Android Adapter里面嵌套ListView实例详解
Android Adapter里面嵌套ListView实例详解 前言: 可嵌套~但是显示需要特殊处理下~以下是处理方法 前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView.但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题.上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的Scr
-
Android listview定位到上次显示的位置的实现方法
Android listview定位到上次显示的位置的实现方法 整体思路:滑动lictview时,记录listview的位置,定位时定位到该位置. 1.添加全局变量 private int scrolledX = 0; private int scrolledY = 0; 2.Oncreate()添加滚动事件监听 ClassesLV.setOnScrollListener(new OnScrollListener() { /** * 滚动状态改变时调用 */ @Override public v
-
Android 中通过ViewDragHelper实现ListView的Item的侧拉划出效果
先来看看,今天要实现的自定义控件效果图: 关于ViewDragHelper的使用,大家可以先看这篇文章ViewDragHelper的使用介绍 实现该自定义控件的大体步骤如下: 1.ViewDragHelper使用的3部曲,初始化ViewDragHelper,传递触摸事件,实现ViewDragHelper.Callback抽象类. 2.需要创建2个直接的子View,分别是前景View和背景View,代表ListView每一项Item的布局的组成,如下所示: 未划出时显示的FrontView: 划出
-
Android ListView之setEmptyView正确使用方法
Android ListView之setEmptyView正确使用方法 我们知道ListView组件提供了一个空数据是的视图设置方法setEmptyView,该方法存在一个诟病,就是空视图和listview组件要在一个Parent中,这个就不在此细说,下面说另一个问题,原因其实和前面那个问题同出一辙. 假如emptyView和listview在布局中,已经属于同一个parent,设置EmptyView的代码如下 private void setEmptyView(){ emptyTv.setTe
-
Android ListView填充数据的方法
Android ListView填充数据的方法 因为多人开发,为了是自己开发的模块方便融合到主框架中,同时也为了减小apk的大小,要求尽可能少的使用xml的布局文件,开发中需要在ListView中显示数据,网上查到的几乎所有的示例,都是通过xml文件来为ListView的Item提供布局样式,甚是不方便. 能不能将自己通过代码创建的布局(如View,LinearLayout)等动态的布局到ListView呢?当然可以. 为了给ListView提供数据,我们需要为其设置一个适配,我们可以从Base
-
Android编程之ListView和EditText发布帖子隐藏软键盘功能详解
本文实例讲述了Android编程之ListView和EditText发布帖子隐藏软键盘功能.分享给大家供大家参考,具体如下: 在Android开发中,手动调用软件盘的隐藏和显示有时候也是非常常见的需求. EditText控件实现了点击打开软键盘输入功能,but why ? 为什么EditText可以点击弹出keyboard,而TextView却不可以,EditText继承TextView做了哪些修改呢?关于这些问题得查看相关具体代码如何实现可以参考,看似简单的控件其实系统封装实现的很复杂.这里告
-
Android ListView实现单选及多选等功能示例
本文实例讲述了Android ListView实现单选及多选等功能的方法.分享给大家供大家参考,具体如下: 在项目中也遇到过给ListView的item添加选择功能.比如一个网购APP,有个历史浏览页面,这个页面现点击item单选/多选及全选删除功能. 当时也是通过在数据中添加一个是否选择的字段来记录item的状态,然后根据这个字段有相应的position位置进行选择状态更改及删除操作. 刚刚看了Android API Demos中17种ListView的实现方法,发现ListView自身就带有
-
Android 实现ListView的点击变色的实例
Android 实现ListView的点击变色的实例 我做了一个音乐播放器,其中用ListView显示歌曲列表,当我点击某一首歌时,希望这首歌所在的item的背景颜色改变,以突出显示所选择的歌曲. 首先我想到的是在ItemClickListener里面写,如下: private View formerView=null; private class ListViewClickListener implements OnItemClickListener{ @Override public voi
-
Android 中ListView setOnItemClickListener点击无效原因分析
前言 最近在做项目的过程中,在使用listview的时候遇到了设置item监听事件的时候在没有回调onItemClick 方法的问题.我的情况是在item中有一个Button按钮.所以不会回调.上百度找到了解决办法有两种,如下: 1.在checkbox.button对应的view处加android:focusable="false" 复制代码 代码如下: android:clickable="false" android:focusableInTouchMode=&
-
Android利用listview控件操作SQLite数据库实例
在本实例中,首先我们利用SQLiteOpenHelper类建立一个数据库,并写好增.删.查等方法,通过SimpleCursorAdapter连接listview实现数据库的增加.查询以及长按删除的功能. 首先,我们先认识一下什么是SQLiteOpenHelper类. Android为了操作SQlite数据库,提供了SQLiteDatabase类,其内封装了insert .delete.update .query .执行SQL命令等操作.同时又为SQLiteDatabase提供了一个辅助类,SQL
-
Android使用ListView实现滚轮的动画效果实例
之前收到一个需求,需要把一个数据展示列表页面做成像滚轮那样的动画效果:中间最大然后向上下两端逐渐缩小.我想了想iOS那边自带滚轮组件,安卓得自己去实现,目前网上仿ios的滚轮组件的也有一些,但是感觉不适合我,我的要求没那么复杂,于是决定自己动手去实现一下. 动手前先分析一下应该怎么做,归根到底只是要实现缩放效果,由中间向两边变小,当一个item越接近中间就放大,越远离中间就缩小.那么可以通过先获取ListView的中点,然后获取当前可视的所有item跟ListView的中点的垂直距离计算出一个比
-
ListView滑动隐藏显示ToolBar的实例
引言 在App日益追求体验的时代,优秀的用户体验往往会使产品脱颖而出.今天我们就来介绍一种简单的滑动ListView来显示或者隐藏ToolBar的功能. 布局文件 下面我们来看一下这个主界面的布局文件.在这个布局文件中,主要是一个ListView控件和一个ToolBar控件.布局如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://
-
Android中Listview点击item不变颜色及设置listselector 无效的解决方案
这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I
-
Android 中ListView的Item点击事件失效的快速解决方法
在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,示例代码见下方.写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView中Item条目点击事件失效,而Item中的View点击事件可以在getView方法中进行处理.导致整个Item点击失效的原因多半是由于在[你自己定义的Item中存在诸
-
Android中ListView的item点击没有反应的解决方法
如果stu_item.xml里面包括button或者checkbox等控件,默认情况下list的item会失去焦点,导致无法响应item的事件,最常用的解决办法是在stu_item.xml的布局文件中设置descendantFocusability属性. 该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系. 属性的值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有
-
Android 自定义Button控件实现按钮点击变色
效果图如下所示: 一.shape 样式:(在drawable新建-->new-->Drawable resource file 在父级标签selector添加Item ) <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item and
-
android的ListView点击item使item展开的做法的实现代码
本文介绍了android的ListView点击item使item展开的做法的实现代码,分享给大家,具体如下: 效果图: 原理是点击item的时候,重新measure list的各个item的高度 list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { My
随机推荐
- WPF图片按钮的实现方法
- JS中showModalDialog关闭子窗口刷新主窗口用法详解
- jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
- 使用js检测浏览器的实现代码
- FTP虚拟用户的使用方法
- linux vps服务器进程kswapd0与events/0消耗大量CPU的问题
- iOS多线程开发——NSThread浅析
- PHP中绘制图像的一些函数总结
- ThinkPHP模板判断输出Present标签用法详解
- 从零学python系列之数据处理编程实例(一)
- Android NDK开发简单程序分享(Hello Word!)
- 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
- ubuntu 配置 tftp 服务器教程
- layui文件上传实现代码
- 解析offsetHeight,clientHeight,scrollHeight之间的区别
- 最常用的flash语句
- 一个简单的php实现的MySQL数据浏览器
- Android仿微博加载长图滚动查看效果
- 深入浅析SSH的三个组件ssh、sftp、scp
- CentOS 7 安装Chrome浏览器的方法