android 通讯录好友排序+字母索引

下载Android手机通讯录和Listview实现A-Z排序(附源码) 博文实现的功能:从Android手机中得到通讯录联系人的数据,并且实现A-Z排序和搜索过滤 以下是在本人手机中调试的效果图 阅读详情

1.首先自定义TextView继承TextView

2.重写onTuchEvent方法,对txtview的状态进行判断

3.自定义接口回调,在onTuchevet事件里边对我们的接口方法进行赋值

4.汉语转拼音工具类,有两种方法:

使用第三方pinyin4j的jar包。

下载地址  , Android Studio也可直接依赖 compile 'com.belerweb:pinyin4j:2.5.0'

使用ASCII码和拼音的映射

5.为了让我们数据进行排序,在我们的实体类应该实现comparable接口,并重写comparaTo方法

6.数据的展示我使用的是ListView,然后实现对textview的监听,将ListView指定到所滑动的位置,setSelect() 方法

Android获取手机联系人匹配用户表并按字母A-Z排序展示 1、前言最近在做公司项目的时候遇到一个添加手机联系人的需求,主要有以下几个功能点: 读取联系人:读取用户手机上的通讯录里的联系人列表 好友排序:按照拼音顺序对好友进行排序,兼容英文数字符号等 字母索引:右侧字母导航条,既可拖动也可点击,联动ListView滑动 匹配:最后要将通讯录里的联系人列表与后台数据库里的用户表进行匹配 最终的大致效果如下:特意写篇博客将整个实现过程记录下来,方便以后再次遇到这 阅读详情

相关推荐

android stdio工程仿通讯录实现字母排序列表

android stdio工程 仿通讯录实现字母排序列表

Android 联系人列表功能及排序问题解决

网上的这种demo太多太多了,但是他们只能实现基本的A-Z排序,也就是仅仅是首字母排序,涉及到一些特别人名字排序的时候相同姓氏会被分开,这也是由于他是按照把中文汉字全部转化为汉语拼音后进行一一比较而造成的结果,给一张图就很明了了 是不是发现姓李中间出现了姓刘的情况?这是因为 李四光的拼音是lisiguang 而刘德华呢是liudehua,李小龙是lixiaolong, 这样应该很清楚了吧,这种...

weixin_33725272的博客 369

Android 联系人字母排序(仿微信)

这是博文配套DEMO,博文地址:http://www.cnblogs.com/scetopcsa/p/4724308.html。欢迎指导、交流。

用Android实现联系人按字母检索,GitHub - doubijuan/ContactsDome: Android 使用ListView的A-Z字母排序功能实现联系人模块,主要学习了ListVie...

ContactsDomeAndroid 使用ListView的A-Z字母排序功能实现联系人模块,主要学习了ListView的A-Z字母排序功能以及根据输入框的输入值改变来过滤搜索结果,如果输入框里面的值为空,更新为原来的列表,否则为过滤数据列表,包括汉字转成拼音的功能先来看一下最终效果图:现在我们来看下项目结构图其实很多都是和上一篇文章一样的,我在这里就不多说啦,不是很明白的地方,可以看一下上一篇...

weixin_39705850的博客 2819

Android例子源码通讯录联系人字母排序索引A-Z.zip

主要实现功能: 1、获取手机通讯录内容已列表的形式展示。 2、屏幕右边有26字母的标杆,触摸标杆的任一字母,该字母颜色、字体改变,同时屏幕上显示该字母,屏幕中展示首字母为该字母的通讯录名单。 3、点击通讯录列表的某一项,字母标杆上该字母的颜色、字体改变,频幕显示该字母3秒。4、滑动该listview,当活动结束时,屏幕最上面的联系人的首字母对应的字母标杆颜色、字体改变。

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 776

Android 仿微信通讯录功能,好友排序 + 字母索引

一、效果图展示 二、功能特点 1.好友排序:按照拼音顺序对好友进行排序,兼容英文数字符号等 2.字母索引:右侧字母导航条,既可拖动也可点击,联动ListView滑动 三、实现 接下来就让我们一步步显示这个效果吧。 1.右侧字母索引的导航条 这个我们可以在网上找到很多类似的,你大可找一个自己喜欢的甚至自己写一个出来,这里我在网上找了一个带波浪效果的,看起来比较炫酷一点吧。 这...

Mydtudysy的博客 1603

基于CY7C68013A芯片的USB2.0设计

基于FPGA的USB2.0读写控制项目简介CY7C68013A芯片介绍CY7C68013A芯片读写时序控制CY7C68013A芯片读写代码USB2.0的测试结果结束语 项目简介 我们前面已经写过了USB3.0的FPGA实现,所用到的芯片是FX600Q芯片,这次我们讲解USB2.0的FPGA代码的编写。我们用到的芯片是Cypress厂家的Cy7C68013A,该款芯片在市场上的应用率极广,我们这里不...

zhangningning1996的博客 1万+

Android仿微信通讯录功能,好友排序+字母索引

一、效果图展示 二、功能特点 1.好友排序:按照拼音顺序对好友进行排序,兼容英文数字符号等 2.字母索引:右侧字母导航条,既可拖动也可点击,联动ListView滑动 三、实现 接下来就让我们一步步显示这个效果吧。 1.右侧字母索引的导航条 这个我们可以在网上找到很多类似的,你大可找一个自己喜欢的甚至自己写一个出来,这里我在网上找了一个带波浪效果的,看起来比较炫

u013334392的博客 5513

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

Android首字母索引排序通讯录

功能介绍:这个软件的功能和微信朋友圈的通讯录功能非常相似。就是将后台请求来的数据根据首字母进行分类,然后右侧有索引栏,根据索引栏可以快速的进行搜索。功能使用场景:通讯录 选择地址(根据地址将数据进行分类) 总之一切使用数据分类的地方都可以使用此功能。在应用开发中属于必不可少的控件。所以透彻的研究它和使用它还是很有必要的。第一个主要功能 右侧的索引Bar SideBarpublic class Sid

u010451990的专栏 1338

APM 飞行模式切换--源码详解

APM飞控中有很多种方式可以改变飞行模式。其中最常见的为遥控器切换和地面站切换两种方式。 下面以遥控器切换为例详解飞行模式切换逻辑。 APM遥控器切换飞行模式的源代码在RC_Channel.cpp文件中的RC_Channel_Copter::do_aux_function_change_mode()函数中。 const bool success = copter.set_mode()调用Copter::set_mode()函数,在set_mode()函数中调用mode_fro...

qq_30623591的博客 2440

Android 通讯录 排序+字母索引(附源码)

代码参考:https://blog.youkuaiyun.com/cn_Jack_Chen/article/details/73672596。源码地址:https://github.com/ShirleyLuoppx/MyApplication。

皮皮虾的博客 339

给大一新生的蓝桥杯EDA备赛规划:从电路分析到立创EDA,如何用一年时间高效备赛?

本文为大一新生提供了一份系统的蓝桥杯EDA备赛规划,从电路分析基础到立创EDA实战操作,分阶段指导如何高效备赛。内容涵盖理论学习、软件操作、PCB设计专项提升及冲刺优化策略,帮助学生在一年内全面提升电子设计能力,为竞赛做好充分准备。

weixin_31476015的博客 287

RAG 提示词工程最佳实践

虽然目前网络上关于提示工程的相关资料已经多如牛毛,然而 RAG (检索增强生成) 任务中提示工程如何进行的资料相对而言却较少。不少朋友之前也热烈的讨论过 RAG 场景下提示词的运用,因此 Zen 禅与计算机程序设计艺术 特别推出 RAG 任务下的提示词实践经验系列分享。RAG 是检索增强生成(Retrieval Augmented Generation)的简称,是当前最火热的企业级LLM应用方案。

AI天才研究院 2012

通讯录搜索排序 类似微信通讯录

点我打开Demo传送之门 1.排序分组 2.分组折叠展开,且记录每次每组的折叠情况,重启后以最后一次为准 3.添加和删除,拖动排序 4.搜索功能 点我打开Demo传送之门 欢迎扫描下方二维码关注——iOS开发进阶之路——微信公众号:iOS2679114653 本公众号是一个iOS开发者们的分享,交流,学习平台,会不定时的发送技术干货,源码,也欢迎大家积极踊跃投稿,(择

wsl2ls的博客 887

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(上)

本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做) 六部分。    本部分内容共分为上下两篇,上篇包括创建ROS工作空间及功能包和必备功能包安装这两部分,下篇包括、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工

慕羽★的博客 3361

python实现字母索引通讯录_Android 仿微信通讯录功能+字母索引+好友列表

一、效果图展示a.gif二、功能特点1.好友排序:按照拼音顺序对好友进行排序,兼容英文数字符号等2.字母索引:右侧字母导航条,既可拖动也可点击,联动ListView滑动三、实现接下来就让我们一步步显示这个效果吧。1.右侧字母索引的导航条这个我们可以在网上找到很多类似的,你大可找一个自己喜欢的甚至自己写一个出来,这里我在网上找了一个带波浪效果的,看起来比较炫酷一点吧。然后我把它导入到了我们项目中并修...

weixin_39566387的博客 367

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android实现通讯录功能,排序+字母索引(全拼加简拼)

一、效果图展示 无图不BB,先上图 二、功能与准备 2.1 功能 按照拼音顺序对好友进行排序,英文数字符号归为# 右侧字母导航条,既可拖动也可点击 粘性头布局 搜索(全拼+简拼) 2.2 准备 需要导入文字转拼音的库 com.belerweb:pinyin4j:2.5.1' 三、开工 3.1 右侧字母的索引 字母的绘画 private static final String[] D...

chen_changtui的博客 6962

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android聊天软件的开发(四)--通讯录

通讯录界面主要

vaintwyt 6138

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【亲测免费】 打造高效通讯录:Android仿微信通讯录界面功能实现

打造高效通讯录:Android仿微信通讯录界面功能实现 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在移动应用开发中,通讯录功能是许多社交类应用的核心组件之一。为了帮助开发者快速实现类似微信的通讯录界面,我们推出了“Android仿微信通讯录界面功能实现”资源包。该资源包不仅详细展示了如何在Android平台上构建一个具有分组显示、按字母索引导航的好友列表界面,还涵...

gitblog_06590的博客 523

android安卓源码海量项目合集打包-1

下载地址 最后更新共计113个分类5177套源码29.2 GB。 卷 新加卷 的文件夹 PATH 列表 卷序列号为 00000200 5E7A:7F30 F:. ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签的灵活运用.rar │ │ Android 实现 标签 拖动 改变位置.rar │ │ android 流式布局和热门标签.zip │ │ ...

chenhao0568的专栏 15万+

js android 通讯录,js通讯录效果,你见过麽

最近有一个需求,要写一个通讯录效果的联系人列表效果,相信这个大家都不陌生,当然当我写到一半的时候,同事告诉我这个是android和IOS的需求,,,十分郁闷,但是本人求知欲甚是强烈,就用jq实现了这个功能。现在我们先来看一下这个功能演示,这个实现了基本的功能,不过一些过渡的动画没有写上,后期会补上,大家想用的话,自行不上这个过渡效果:通讯录效果演示.gif首先我们来看一下html的布局,这个布局很...

weixin_30913041的博客 299
上一篇: android 自定义listview实现头部试图放大缩小
下一篇: android 文字转语音进行播报
Android_Code
博客等级 码龄8年 5粉丝 21原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值