网上找了很多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单行选中变色相关推荐

  1. android listview设置选中时的item的背景色

    今天实在不知道写些什么内容,所以自己在网上找了些资料,觉得还可以,所以还是写一下,觉得每天写些东西的习惯不能荒废. 默认情况下使用ListView背景色是黑色,选中item的高亮颜色是菊黄色,很多时候 ...

  2. ListView删除选中的多项目

    //ListView删除选中的多项目 function DeleteMultSelItems(ListView:TListView):Boolean; var   I: Integer; begin ...

  3. 微信小程序css鼠标上去变色,微信小程序实现默认第一个选中变色效果

    效果图: 这里默认第一个选中 点击每个不会改变样式 根据index来实现 wxml: 页面class有三目运算 {{item.num}} wxss: _left 蓝色 left 黑色 .box{ wi ...

  4. android中设置ListView的选中的Item的背景颜色(附源码)

    http://longyi-java.iteye.com/blog/976067 ListView中没有默认的选择颜色,只有选择Item后的焦点颜色,鼠标点击时Item有颜色,放开鼠标后颜色也就没有了 ...

  5. listview qt 选中内容_演练: 操作Qt应用中的QListView

    演练:操作Qt应用中的List 背景 需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试.ListView通常用于含有大量可选项的窗口,比如文件列表.清单等等.以下我们对QListV ...

  6. Android代码 listview选中,android自定义listview的选中状态

    中心思想:将选中状态设置为完全透明色(即看不到自定义的选中状态)然后将listview 的每一项的背景设置为选中则切换背景 1,选择2个图片一个为一般的显示状态,另一张为选中状态的图片 在drawab ...

  7. 微信小程序 默认第一个选中变色

    效果图: 这里默认第一个选中 点击每个不会改变样式 根据index来实现 wxml: 页面class有三目运算 <view class='box'><view class='box- ...

  8. el-select选中变色及百分比怎么做

    效果图: 选中后超过80%的显示红色,没有则显示黄色,没有百分比的不变颜色. 解决思路: 1.A思路:用的是获取dom节点,每切换一次就获取dom节点,然后给它变色:但是这样子的缺点就是有时候切换就会 ...

  9. winform listview 设置选中项 图片_实战PyQt5: 069-MV框架中的项视图拖放功能

    模型-视图框架完全支持Qt的基本拖放操作,列表.树形和表格部件中的项可以在视图间拖动,数据可以以MIME类型的格式进行导入和导出 Qt提供的标准视图自动支持在视图内部的拖放,其中的项可以被移动以改变显 ...

最新文章

  1. r语言 java mysql_R语言 可不可以取代数据库?
  2. rabbitMQ第一篇:rabbitMQ的安装和配置
  3. guava中的Splitter
  4. [翻译] NSRegexTester
  5. SpringMVC + Apache POI 实现WEB中Excel下载功能
  6. Firefox必备的24款web开发插件[转]
  7. 专利交底书模板_技术交底书该谁来写?
  8. chrome.storage和window.localStorage的区别
  9. 二、Kubernetes (k8s) 内网集群的搭建详细图解
  10. Win10系统下安装Ubuntu系统(双系统)
  11. css中margin-top和top有什么区别
  12. 安装好maya后运行不了并弹出如图的错误
  13. 沁恒蓝牙芯片CH57x系列学习与应用
  14. [从零开始]用python制作识图翻译器·四
  15. 为什么用企业微信做运营
  16. 解决办法: Vue cross-env NODE_ENV=production webpack --progress --hide-module
  17. C程序--输出大写英文字母
  18. 新华三:数字化从我做起
  19. Udacity课程脉络-统计学基础(一)
  20. Java如何把一个CSV文件拆分成指定个CSV文件【带源码,完美运行带截图】

热门文章

  1. 转:条形码技术在供应链管理中的作用
  2. 实验:网络常见的9个命令
  3. CDH5.7.6-CentOS6安装
  4. js判断是否是苹果浏览器
  5. Bzoj4766 文艺计算姬
  6. 软件工程师的硬件与软件
  7. 数据挖掘著名案例——啤酒与尿布
  8. 你的英语为啥学不好?跟机器翻译比比看
  9. android 定时推送提醒,使用workManager实现每日定时推送通知
  10. AXI - 4KB边界