ListView点击或选中item改变背景
点击或选中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改变背景的更多相关文章
- ListView 点击某一项换背景图片
1. layout_search_list_item.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- js实现点击ul/li等改变背景颜色
今天项目遇到了标题所说的问题,找到一篇很高效的例子,值得学习. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...
- 解决“listView点击一个Item,另外几个Item也跟着改变”的问题
如图所看到的: 我点击Item,右边的checkBox就会对应的变化.可是当我第一次做的时候.点击第一个Item,右边的checkBox变为绿色,可是当我listView往下拉的时候,发现以下也有是绿 ...
- Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个.花费了一段时间,自己觉得有点难 度,现在和大家分享一下,下面是效果显示 ...
- Android中的ListView点击时的背景颜色设置
想设置listview中每行在点击.选中等不同状态下有不同的背景颜色,或者背景图片. 这可以用Android的Selector来实现.它可以定义组件在不同状态下的显示方式. 新建一个xml文件list ...
- Android中Listview点击item不变颜色以及设置listselector 无效
Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...
- android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现
android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现 首先看到selector的属性: android:state_focus ...
- ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)
手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...
- android ListView点击item返回后listview滚动位置
1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...
随机推荐
- Mysql中timestamp用法详解
前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间.使用数字签名技术产生的数据, 签名的对象包括了 ...
- NHibernate系列学习(二)-使用sql和hql以及linq
1.本文主要介绍了NH的三种查询方式 2.界面查看 3.代码架构 4.代码详情 namespace KimismeDemo { public partial class Form2 : Form { ...
- Android热修复方案比较
热修复的特点:无需重新发版,实时高效热修复:用户无感知修复,无需下载新的应用,代价小: 修复成功率高,把损失降到最低. 一.热修复开源方案和使用情况 方案名称 方案开发公司 开发时间 Github星评 ...
- STL之string篇
常用代码整理: #include<iostream> #include<cstdio> #include<cstring> #include<string&g ...
- 03-Servlet 体系结构知识梳理
一.Servlet体系结构 Java Web应用是基于Servlet规范运行,Servlet顶层类的关联如下图: 从图可看出,Servlet规范基本围绕这几个类运行,其中,与Servlet主动关联的有 ...
- 【译】x86程序员手册07 - 2.5操作数选择
2.5 Operand Selection 操作数选择 An instruction can act on zero or more operands, which are the data mani ...
- scss基础
1.变量$ 全局 局部 .div{ $color:yellow; } 2.类似函数@mixin border-radius($radius) { }引用:@include border-radius( ...
- JavaScript:一句代码输出重复字符串(字符串乘法)
看到一个题目要求写一个函数times,输出str重复num次的字符串. 比如str:bac num:3 输出:abcabcabc 除了利用循环还有几种方法,我学习研究之后记下以下三种方法. 1 ...
- git对vue项目进行版本管理
生成本地仓库 步骤一:git init 步骤二:git add * 步骤三:git commit -m 'init team' 创建远程仓库 new responstory 复制关联代码的命令 将本地 ...
- Python中的可迭代对象/迭代器/For循环工作机制/生成器
本文分成6个部分: 1.iterable iterator区别 2.iterable的工作机制 3.iterator的工作机制 4.for循环的工作机制 5.generator的原理 6.总结 1.i ...