android 如何输入首字母进行地址城市模糊检索

android 如何输入首字母进行地址城市模糊检索,第1张

Android中ListView的A-Z字母排序和过滤搜索功能并且实现汉字转成拼音的功能,一般对联系人,城市列表等实现A-Z的排序,因为联系人和城市列表可以直接从数据库中获取它的汉字拼音,而对于一般的数据,实现A-Z的排序,基实只需要将汉字转换成拼音就行了。

以下为步骤:

SortModel 一个实体类,里面一个是ListView的name,另一个就是显示的name拼音的首字母。

2.SideBar类就是ListView右侧的字母索引View,需要使用setTextView(TextView mTextDialog)来设置用来显示当前按下的字母的TextView,以及使用setOnTouchingLetterChangedListener方法来设置回调接口,在回调方法onTouchingLetterChanged(String s)中来处理不同的 *** 作。

3.CharacterParser 这个类是将汉字转换成拼音的类,该拼音没有声调的,该类是单例类,其中定义了三个方法,在这个demo中用到的是getSelling(String chs)方法,将词组转换成拼音。

4.ClearEditText类是自定义的一个在右侧有删除图片的EditText,当然也可以用Android原生的EditText,这里就不贴上代码了Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框。

5.SortAdapter 数据的适配器类,该类需要实现SectionIndexer接口,该接口是用来控制ListView分组的。

6.最后运行效果

数据库采用SQLite

这个是查询方法,至于数据的链接什么的 请百度。

调用方法:

String sql = "SELECT * FROM info ORDER BY id"

ArrayList<HashMap<String, String>>list = baseUtil.queryBySqlMap(sql,

null)

查询方法:

/******************************************

* 用sql语句查询

*

* @param sql

*sql查询语句

* @param selectionArgs

*参数值

* @return ArrayList<HashMap<String, String>>

*******************************************/

public ArrayList<HashMap<String, String>>queryBySqlMap(String sql,

String[] selectionArgs) {

SQLiteDatabase dbs = DatabaseServer.getDatabase()

Cursor cursor = dbs.rawQuery(sql, selectionArgs)

ArrayList<HashMap<String, String>>list = new ArrayList<HashMap<String, String>>()

while (cursor.moveToNext()) {

HashMap<String, String>map = new HashMap<String, String>()

for (int i = 0i <cursor.getColumnCount()i++) {

map.put(cursor.getColumnName(i),

nullToString(cursor.getString(i)))

}

list.add(map)

}

cursor.close()

return list

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9622341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存