ListView单行选中变色
网上找了很多ListView选中后变色的文章,但都是什么字体设置变色选择器,要不就是ListView设置变色器,单行选中变色的始终找不到!
甚至还有人说用ListView的onItemSelectedListener方法,可是我用了这个方法,居然一点反应都没有好不好!
最后才看到有人说这个方法是针对有实体键盘的,用实体键盘的上下键才会触发这个事件~!
现在还有几个手机用实体键盘啊(老年机和个人爱好收藏者除外);
这个功能我纠结了一两天才搞定,一定要记录下来,大家共勉!这个才是真的单选,非多选,非点击变色后又恢复
这个就是效果图了,主要原理就是在adapter里面比较资源,然后在外面刷新Adapter,代码如下
1.主MainActivity.java
package cq.cake.listselect;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;import java.util.ArrayList;
import java.util.List;public class MainActivity extends Activity {private List<String> mDatas;private ListView listView;private ListViewSelectAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();initEvent();}private void initView() {listView = (ListView) findViewById(R.id.listView_select);}private void initData() {mDatas = new ArrayList<>();for (int i = 'A'; i <'z' ; i++) {mDatas.add((char)i+"");}adapter = new ListViewSelectAdapter(this, mDatas);listView.setAdapter(adapter);}private void initEvent() {listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {notifyTextColor(position);}});}/*** 选中变色,一定要刷新adapter** @param position*/public void notifyTextColor(int position) {adapter.setSelectPosition(position);adapter.notifyDataSetChanged();}
}
2。还有就是Adapter了
package cq.cake.listselect;import android.content.Context;
import android.graphics.Color;
import android.widget.TextView;import java.util.List;/*** My Application -- cq.cake.listselect* Created by Small Cake on 2016/1/20 10:12.*/
public class ListViewSelectAdapter extends Xadapter<String> {private int mPosition;public ListViewSelectAdapter(Context context, List<String> listDatas) {super(context, listDatas, R.layout.item_text1);}@Overridepublic void convert(ViewHolder holder, String s) {holder.setText(R.id.text,s);TextView view = holder.getView(R.id.text);//这里的listDatas就是同过构造函数传递进来的集合,通过比较值来改变颜色if(listDatas.get(mPosition).equals(s)){view.setTextColor(Color.parseColor("#ff00ff"));}else{//没有选中的行都变灰色view.setTextColor(Color.parseColor("#8a8a8a"));}}public void setSelectPosition(int position){this.mPosition = position;}
}
好了,就只需这里设置一下就Ok~!
源代码一并奉上,方便大家学习:ListView单选文字变色
ListView单行选中变色相关推荐
- android listview设置选中时的item的背景色
今天实在不知道写些什么内容,所以自己在网上找了些资料,觉得还可以,所以还是写一下,觉得每天写些东西的习惯不能荒废. 默认情况下使用ListView背景色是黑色,选中item的高亮颜色是菊黄色,很多时候 ...
- ListView删除选中的多项目
//ListView删除选中的多项目 function DeleteMultSelItems(ListView:TListView):Boolean; var I: Integer; begin ...
- 微信小程序css鼠标上去变色,微信小程序实现默认第一个选中变色效果
效果图: 这里默认第一个选中 点击每个不会改变样式 根据index来实现 wxml: 页面class有三目运算 {{item.num}} wxss: _left 蓝色 left 黑色 .box{ wi ...
- android中设置ListView的选中的Item的背景颜色(附源码)
http://longyi-java.iteye.com/blog/976067 ListView中没有默认的选择颜色,只有选择Item后的焦点颜色,鼠标点击时Item有颜色,放开鼠标后颜色也就没有了 ...
- listview qt 选中内容_演练: 操作Qt应用中的QListView
演练:操作Qt应用中的List 背景 需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试.ListView通常用于含有大量可选项的窗口,比如文件列表.清单等等.以下我们对QListV ...
- Android代码 listview选中,android自定义listview的选中状态
中心思想:将选中状态设置为完全透明色(即看不到自定义的选中状态)然后将listview 的每一项的背景设置为选中则切换背景 1,选择2个图片一个为一般的显示状态,另一张为选中状态的图片 在drawab ...
- 微信小程序 默认第一个选中变色
效果图: 这里默认第一个选中 点击每个不会改变样式 根据index来实现 wxml: 页面class有三目运算 <view class='box'><view class='box- ...
- el-select选中变色及百分比怎么做
效果图: 选中后超过80%的显示红色,没有则显示黄色,没有百分比的不变颜色. 解决思路: 1.A思路:用的是获取dom节点,每切换一次就获取dom节点,然后给它变色:但是这样子的缺点就是有时候切换就会 ...
- winform listview 设置选中项 图片_实战PyQt5: 069-MV框架中的项视图拖放功能
模型-视图框架完全支持Qt的基本拖放操作,列表.树形和表格部件中的项可以在视图间拖动,数据可以以MIME类型的格式进行导入和导出 Qt提供的标准视图自动支持在视图内部的拖放,其中的项可以被移动以改变显 ...
最新文章
- r语言 java mysql_R语言 可不可以取代数据库?
- rabbitMQ第一篇:rabbitMQ的安装和配置
- guava中的Splitter
- [翻译] NSRegexTester
- SpringMVC + Apache POI 实现WEB中Excel下载功能
- Firefox必备的24款web开发插件[转]
- 专利交底书模板_技术交底书该谁来写?
- chrome.storage和window.localStorage的区别
- 二、Kubernetes (k8s) 内网集群的搭建详细图解
- Win10系统下安装Ubuntu系统(双系统)
- css中margin-top和top有什么区别
- 安装好maya后运行不了并弹出如图的错误
- 沁恒蓝牙芯片CH57x系列学习与应用
- [从零开始]用python制作识图翻译器·四
- 为什么用企业微信做运营
- 解决办法: Vue cross-env NODE_ENV=production webpack --progress --hide-module
- C程序--输出大写英文字母
- 新华三:数字化从我做起
- Udacity课程脉络-统计学基础(一)
- Java如何把一个CSV文件拆分成指定个CSV文件【带源码,完美运行带截图】