模糊查找 再深入
应某位大哥要求 再次对 SQLite::query(...) 学习了一番 有点心得 不敢独吞 与大家讨论之
[前言]
本例打算以android系统联系人为例演示 该联系人记录初始数据为:
[代码 步骤]
1. 自定义 即:不使用系统提供的query(...) 为什么:因为开始也不清楚系统query(...) 各参数所代表含义 只能自己扩展之
* 通过ContentResolver 查询目标Uri 返回Cursor
Cursor c = getContentResolver().query(People.CONTENT_URI,
null, null, null, null);
* 定义query2ByCursor(Cursor c,String columnName,String filter ) 现一一说明各参数意思
函数参数解释:
String[] query2ByCursor(Cursor c,String columnName,String filter )
1. paras:
- Cursor c : 查询目标
- String columnName : 模糊查询目标的索引列名 i.g. 查询所有联系人中 记录名字含有字串"sh"的名单 那么该值应为:"名单" 即"People.NAME"
- String filter : 模糊查询设置的条件 i.g. 上面例子中 该值应为"sh"
2. return: 返回所有匹配查询条件的记录
函数实现为:
public String[] query2ByCursor(Cursor c,String columnName,String filter){
List<String> vlist = new ArrayList<String>();
for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
int iNameIndex = c.getColumnIndex(columnName);
String string = c.getString(iNameIndex);
if(string.contains(filter)){
vlist.add(string);
}
}
String[] result = new String[vlist.size()];
vlist.toArray(result);
return result;
}
函数使用为: 还是以那个例子为例 其具体传递参数
String[] data = query2ByCursor(c,People.NAME,"sh");
其他 包括:使用String[] 并显示值
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
setListAdapter(adapter);
emulator 运行截图:
2. 以上是使用自扩展函数 下面说说怎么利用系统提供query(...) 还是那个问题
Cursor c = getContentResolver().query(People.CONTENT_URI,
null, "name like '%sh%'", null, null);
模糊查找:
String selection: "name like '%sh%'"
意思: 查找所有列名为: name 且其包含字串"sh" 的记录 %匹配所有字串
3. 下面在介绍下一个参数: String[] selectionArg 的使用情况
使用说明:
其会替代参数String selection 中的 '?' 且依次代替
例子: 查找名字为"griffin" 或者 "nichlas" 的记录 则:函数及参数为:
Cursor c = getContentResolver().query(People.CONTENT_URI,
null, "name = ? or name = ?", new String[]{"griffin","nichlas"}, null);
其等效于:
Cursor c = getContentResolver().query(People.CONTENT_URI,
null, "name = griffin or name = nichlas", null, null);
其实 ContentResolver.query(....) 用法 遵循与SQLite.query(...)
any idea or other are welxome~~~
分享到:
相关推荐
在这个"易语言模糊查找窗口"的项目中,我们主要探讨的是如何使用易语言实现一个功能,即枚举并模糊查找系统中的所有窗口。 首先,我们要了解"枚举系统所有窗口"这一概念。在Windows操作系统中,每个应用程序都会...
在“易语言列表框首拼模糊查找源码”中,我们可以深入学习到如何利用易语言来实现对列表框数据进行高效、灵活的模糊查找功能。 列表框是用户界面中常见的一种组件,通常用于展示一系列可选择的条目。在易语言中,...
本教程将深入探讨如何在C#环境下,利用VS2005为ComboBox添加自动补全或模糊查找功能,这在实际开发中非常实用,能够提升用户体验。 一、自动补全(AutoComplete)原理 自动补全功能基于用户输入的部分文本,快速...
本案例将深入探讨如何在易语言中实现EDB数据库的模糊查找功能。 模糊查找,又称为通配符搜索,允许用户输入部分关键字来查找匹配的数据,这对于用户不完全记得具体信息时尤其有用。在EDB数据库中,我们可以利用SQL...
在SQL(Structured Query Language)中,模糊查找是一种非常实用的功能,它允许用户使用通配符进行不完全匹配的搜索,从而在数据检索时提供更大的灵活性。本资源包含了一个关于“sql2005企业级ETL平台特性与组件”的...
源代码是程序设计的核心,通过分析源码,我们可以深入理解模糊查找窗口的实现原理和设计思路。易语言的源代码通常由一系列的模块、函数和控制结构组成,这些元素共同协作以完成特定的查找任务。在这个项目中,我们...
SQL Server 2005模糊查找包是一种强大的数据处理工具,它允许开发人员在大量数据中执行不精确的匹配操作,适用于数据清洗、数据比对等场景。在本篇文章中,我们将深入探讨如何使用这个功能,以及其工作原理。 首先...
本文将围绕Lucene的分组、精确查找和模糊查找三大核心知识点展开,结合实例深入探讨其原理和应用。 一、Lucene分组查询 在数据检索中,分组查询常常用于对结果进行分类展示,帮助用户更清晰地理解搜索结果的分布。...
在这个“易语言列表框首拼模糊查找源码.7z”压缩包中,包含的是易语言实现的列表框首拼音模糊查找功能的源代码。 列表框是用户界面中常见的一种控件,用于展示多条数据,用户可以通过滚动浏览、选择等操作来互动。...
这里我们关注的是“字符串首字符检测”和“模糊查找”这两个核心概念,它们在各种应用场景中都有广泛的应用,比如搜索引擎、文本分析、用户输入验证等。 首先,让我们深入理解“字符串首字符检测”。这通常涉及到对...
在content.txt文件中,可能包含了源码的详细内容,通过阅读和分析这份源码,我们可以更深入地学习和理解易语言中的数据库操作技巧和模糊搜索的实现细节。 总的来说,这份资源为学习易语言数据库编程提供了实践案例...
本篇文章将深入探讨C#如何进行SQL的模糊查询,以及与`LIKE`关键字相关的应用。 首先,我们要理解`LIKE`关键字在SQL中的作用。`LIKE`是SQL标准中的一个比较运算符,用于在WHERE子句中进行模式匹配,常用于模糊查询。...
然而,标准的VB下拉框控件有时无法满足复杂的需求,例如添加图标、实现模糊查找或提供自定义提示功能。针对这种情况,出现了增强型的VB下拉框控件——FlexComboBox。 FlexComboBox是一款专门为VB开发者设计的高级...
"ComBoBoxEditTest实现模糊查询"这个主题聚焦于如何利用ComBoBoxEdit控件提供高效的搜索和筛选功能,使得用户能够方便地查找所需信息,提高操作效率。ComBoBoxEdit是一种常用的UI元素,它结合了下拉列表和文本输入框...
模糊搜索允许用户在文本中查找与目标字符串相似或部分匹配的字符串,这在很多场景下非常有用,例如在大量数据中查找特定信息。 “文本_模糊寻找”是易语言提供的一个内建函数,用于实现模糊搜索。这个函数通常接受...
易语言是一种基于中文编程的计算机程序设计语言,它旨在降低编程技术门槛,让不懂英文的用户也能进行软件开发。在易语言中实现模糊搜索...通过深入理解和实践这些知识,开发者能够创建出高效、用户友好的模糊搜索功能。
易语言中可能没有内置这些高级算法,但可以编写简单的字符串查找函数来实现基本的模糊匹配。 4. **找到匹配项**:如果窗口标题满足模糊匹配条件,就保存该窗口的句柄,通常会存储在一个列表或数组中。 5. **返回...
在这个“模糊查询的例子-最简单的VB查询入门”项目中,我们将深入探讨如何在Visual Basic (VB)环境中实现模糊查询。 首先,VB是Microsoft开发的一种面向对象的编程语言,特别适合于Windows应用开发。在这个例子中,...
通过阅读和学习这个源码,你可以深入理解易语言如何与树形框交互,以及如何实现模糊查找功能。这对于掌握易语言编程和提升搜索算法应用能力都大有裨益。 总的来说,易语言-易语言树形框模糊查找算法是一个结合了...