点击或选中ListView中的一项后。使item背景改变,失去焦点相同显示选中的背景。又一次选中另外一项才刷新;

在Adapter中配置:

public class MyAdapter extends BaseAdapter{

 int mSelect = 0;   //选中项

     ......

 public void changeSelected(int positon){ //刷新方法
if(positon != mSelect){
mSelect = positon;
notifyDataSetChanged();
}
} public View getView(int position, View convertView, ViewGroup parent) {
// if(convertView==null){
LayoutInflater factory = LayoutInflater.from(context);
View v = (View) factory.inflate(R.layout.list_item, null);
TextView tv = (TextView) v.findViewById(R.id.Item_tv);
tv.setText("test");
// }
if(mSelect==position){
v.setBackgroundResource(R.drawable.fc_bg); //选中项背景
}else{
v.setBackgroundResource(R.drawable.bg); //其它项背景
} return v;
} }

配置好了之后,以下就是应用:

...........

mAdapter = new MyAdapter(...);

myList.setAdapter(mAdapter);

//////////点击监听

myList.setOnItemClickListener(new OnItemClickListener() {

            @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mAdapter.changeSelected(position);//刷新 }......} ////////////////选中监听 myList.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mAdapter.changeSelected(position);//刷新 }......}

-------------------------------------------------------------------------------------

监听view获得焦点或按下等状态的背景,能够用selector。

在res--drawable中配置样式文件,如button_style.xml

   <?xml version="1.0" encoding="utf-8"?

>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_bg_fc" /><!--按下时的背景-->
<item android:state_focused="true" android:drawable="@drawable/btn_bg_fc" /><!--获得焦点时的背景-->
<item android:state_selected="true" android:drawable="@drawable/btn_bg_fc" /><!--选中状态的背景-->
<item android:drawable="@drawable/btn_bg" /> <!--默认背景-->
</selector>

用在Listview,gridview中

<ListView

......

         android:listSelector="@drawable/button_style"

......> </ListView>

用于其它View,如Button,textview等

android:background="@drawable/button_style"

ListView点击或选中item改变背景的更多相关文章

  1. ListView 点击某一项换背景图片

    1. layout_search_list_item.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...

  2. js实现点击ul/li等改变背景颜色

    今天项目遇到了标题所说的问题,找到一篇很高效的例子,值得学习. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...

  3. 解决“listView点击一个Item,另外几个Item也跟着改变”的问题

    如图所看到的: 我点击Item,右边的checkBox就会对应的变化.可是当我第一次做的时候.点击第一个Item,右边的checkBox变为绿色,可是当我listView往下拉的时候,发现以下也有是绿 ...

  4. Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色

    今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个.花费了一段时间,自己觉得有点难 度,现在和大家分享一下,下面是效果显示 ...

  5. Android中的ListView点击时的背景颜色设置

    想设置listview中每行在点击.选中等不同状态下有不同的背景颜色,或者背景图片. 这可以用Android的Selector来实现.它可以定义组件在不同状态下的显示方式. 新建一个xml文件list ...

  6. Android中Listview点击item不变颜色以及设置listselector 无效

    Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...

  7. android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现

              android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现 首先看到selector的属性: android:state_focus ...

  8. ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)

    手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...

  9. android ListView点击item返回后listview滚动位置

    1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...

随机推荐

  1. 【转】Linux 之 数据流重定向

    转自:http://www.linuxidc.com/Linux/2012-09/69764.htm linux在你登入时,便将默认的标准输入.标准输出.标准错误输出安排成你的终端.I/O重定向就是你 ...

  2. 大数据~说说ZooKeeper

    一些概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase和Kafka重要组件.它是一个为分布式应用提供一致性 ...

  3. Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】

    [转载]http://www.cnblogs.com/zdz8207/archive/2012/07/09/google-play-store-registered.html Android Mark ...

  4. T-SQL语句以及几个数据库引擎

    创建表 注意事项: A.自增长             B.数据库引擎, ISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数.因此,IS ...

  5. animation仿进度条

    animation:使用的好可以有很多酷炫效果 仿进度条效果.

  6. DB2使用收集

    db2命令收集 创建带分区的表: create table  table_name( )in table_space index in index_space partition by range(c ...

  7. 控制台——屏蔽Ctrl+C快捷键对窗体的关闭功能

    导入SetCtrlHandlerHandler API //定义处理程序委托 public delegate bool ConsoleCtrlDelegate(int ctrlType); //导入S ...

  8. [Windows Server 2012] 服务器安全加固

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...

  9. 比较简单的替换配置文件的shell脚本

    作为测试,日常更新部署测试版本,修改配置文件是每天必不可少的一个工作.特别是如果需要更改的配置文件存在于多个文件里,更是繁琐不堪. 找了一下Linux shell脚本里有个sed 命令可以实现这个需求 ...

  10. centOS7创建python虚拟环境

    参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...