#searchview_library
###简介
自定义的一个App搜索框库,实现了监听文本框输入的变化,清空文本框内容,提示列表,热搜列表、自动保存搜索记录等功能
###使用方法
- 关联类库
compile project(':searchview_library')
- 在布局文件中定义
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<com.example.searchview_library.SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
- 初始化
private SearchView searchView;
searchView = (SearchView) findViewById(R.id.searchView);
- 设置数据
//热搜数据
private List<String> hot_datas;
//提示列表数据
private List<String> hint_datas;
private void initData() {
hot_datas = new ArrayList<>();
hint_datas = new ArrayList<>();
searchALG = new SearchALG(this);
for (int i = 0; i < 10; i++) {
hot_datas.add("Android Hot " + i);
}
//注:若不需要热搜列表,可以不设置
//设置热搜数据显示的列数
searchView.setHotNumColumns(2);
//设置热搜数据
searchView.setHotSearchDatas(hot_datas);
/**
* 设置提示数据的集合
*/
for (int i = 0; i < 10; i++) {
hint_datas.add("ts"+"安卓学习" + "Android Hint " + i + " 你好");
}
/**
* 设置自动保存搜索记录
*/
searchView.keepSearchHistory(true);
//设置提示列表的最大显示列数
searchView.setMaxHintLines(8);
//设置保存搜索记录的个数
searchView.setMaxHistoryRecordCount(6);
}
- 设置监听
private SearchALG searchALG;
private List<String> changedHintDatas;
searchView.setOnSearchListener(new MyOnSearchListener());
/**
* 设置searview的监听
*/
class MyOnSearchListener implements SearchView.OnSearchListener {
/**
* 搜索回调
* @param searchText 进行搜索的文本
*/
@Override
public void onSearch(String searchText) {
if (!TextUtils.isEmpty(searchText)) {
Toast.makeText(MainActivity.this, "完成搜索" + searchText, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "搜索内容不能为空!", Toast.LENGTH_SHORT).show();
}
}
/**
* 刷新提示列表
* @param changedText 改变后的文本
*/
@Override
public void onRefreshHintList(String changedText) {
if (changedHintDatas == null) {
changedHintDatas = new ArrayList<>();
} else {
changedHintDatas.clear();
}
if (TextUtils.isEmpty(changedText)) {
return;
}
for (int i = 0; i < hint_datas.size(); i++) {
String hint_data = hint_datas.get(i);
boolean isAdd = searchALG.isAddToHintList(hint_data, changedText);
if (isAdd) {
changedHintDatas.add(hint_datas.get(i));
}
}
/**
* 根据搜索框文本的变化,动态的改变提示的listView
*/
searchView.updateHintList(changedHintDatas);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
安卓模仿淘宝自定义搜索框
共57个文件
xml:23个
java:11个
png:10个
4星 · 超过85%的资源 需积分: 17 82 下载量 86 浏览量
2017-06-14
10:21:48
上传
评论 4
收藏 132KB ZIP 举报
温馨提示
模仿风行客户端的一个自定义搜索框库,实现了监听文本框输入的变化,清空文本框内容,提示列表,热搜列表、自动保存搜索记录等功能
资源推荐
资源详情
资源评论
收起资源包目录
search_view.zip (57个子文件)
search_view
searchviewdemo
gradlew.bat 2KB
gradlew 5KB
proguard-rules.pro 682B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
src
test
java
com
example
searchviewdemo
ExampleUnitTest.java 333B
androidTest
java
com
example
searchviewdemo
ApplicationTest.java 369B
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
drawable-hdpi
drawable-xhdpi
drawable
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 214B
strings.xml 80B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
activity_main.xml 520B
values-w820dp
dimens.xml 364B
java
com
example
searchviewdemo
MainActivity.java 3KB
AndroidManifest.xml 687B
.idea
gradle.xml 431B
runConfigurations.xml 564B
misc.xml 1KB
vcs.xml 164B
.name 14B
copyright
profiles_settings.xml 76B
modules.xml 268B
encodings.xml 200B
compiler.xml 686B
workspace.xml 20KB
.gitignore 8B
local.properties 481B
build.gradle 746B
libs
searchview_library
proguard-rules.pro 682B
src
test
java
com
example
searchview_library
ExampleUnitTest.java 337B
androidTest
java
com
example
searchview_library
ApplicationTest.java 373B
main
res
drawable-hdpi
search_clear.png 635B
video_number_back.png 164B
search_delete_normal.png 413B
drawable-xhdpi
abc_ic_search.png 3KB
abc_ic_search_api_holo_light.png 3KB
drawable
shape_rect_while.xml 249B
selector_search.xml 326B
values
strings.xml 84B
layout
item_search_title.xml 2KB
item_search.xml 426B
search_view.xml 7KB
java
com
example
searchview_library
NoScrollGridView.java 723B
CharacterParser.java 8KB
SearchView.java 14KB
CommonAdapter.java 2KB
HintAdapter.java 2KB
SearchALG.java 3KB
AndroidManifest.xml 289B
.gitignore 8B
build.gradle 644B
libs
README.md 4KB
共 57 条
- 1
资源评论
- lancechu2018-03-31还是有点参考价值的,学习了
poem_code
- 粉丝: 9
- 资源: 53
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功