广告
返回顶部
首页 > 资讯 > 精选 >Android怎么实现简单动态搜索功能
  • 312
分享到

Android怎么实现简单动态搜索功能

2023-06-30 13:06:40 312人浏览 泡泡鱼
摘要

本篇内容介绍了“Android怎么实现简单动态搜索功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言提到Android的动态搜索,大多应

本篇内容介绍了“Android怎么实现简单动态搜索功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    前言

    提到Android的动态搜索,大多应该会想到EditText的文本改变的监听器(addTextChangedListener),本文会简单介绍一下,但是本文介绍的是SearchView+Listview的实现。

    效果图:

    Android怎么实现简单动态搜索功能

    一、addTextChangedListener

    使用这种方式的思路简述就是,当监听到文本改变时,就用Handler post一个Runnable去做相应的改变,动态修改ListView的显示。

    二、本文案例

    1.介绍一下SearchView的一些方法

    • setIconified():设置搜索框直接展开显示。左侧有放大镜(在搜索框中) 右侧有叉叉 可以关闭搜索框

    • setIconifiedByDefault():设置搜索框直接展开显示。左侧有放大镜(在搜索框外) 右侧无X样式点击按钮 有输入内容后有X样式点击按钮 不能关闭搜索框

    • onActionViewExpanded():设置搜索框直接展开显示。左侧有无放大镜(在搜索框中) 右侧无叉叉 有输入内容后有X样式点击按钮, 不能关闭搜索框

    • setOnQueryTextListener():为 SearchView 中的用户操作设置侦听器。

    • setSubmitButtonEnabled():当查询非空时启用显示提交按钮。

    • setQueryHint():查询提示语句

    2.准备数据

    本案例使用一个String数组

    private final String[] mStrings = Cheeses.sCheeseStrings;

    3.初始化以及填充数据

    mSearchView = (SearchView) findViewById(R.id.search_view);        mListView = (ListView) findViewById(R.id.list_view);        mListView.setAdapter(mAdapter = new ArrayAdapter<>(this,                android.R.layout.simple_list_item_1,                mStrings));        //设置是否可以通过键盘输入的字符来过滤掉不需要的选项,定位到需要的选项。        mListView.setTextFilterEnabled(true);        setupSearchView();
    private void setupSearchView() {        //设置搜索框直接展开显示。左侧有放大镜(在搜索框中) 右侧有叉叉 可以关闭搜索框        //mSearchView.setIconified(false);        //设置搜索框直接展开显示。左侧有放大镜(在搜索框外) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框        //mSearchView.setIconifiedByDefault(false);        //设置搜索框直接展开显示。左侧有无放大镜(在搜索框中) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框        mSearchView.onActionViewExpanded();        //为 SearchView 中的用户操作设置侦听器。        mSearchView.setOnQueryTextListener(this);        //当查询非空时启用显示提交按钮。        mSearchView.setSubmitButtonEnabled(false);        //查询提示语句        mSearchView.setQueryHint(getString(R.string.cheese_hunt_hint));    }

    4.在SearchView中用户输入字符时激发方法里写入简单逻辑

    //用户输入字符时激发该方法public boolean onQueryTextChange(String newText) {        if (TextUtils.isEmpty(newText)) {            mListView.clearTextFilter();        } else {            mListView.setFilterText(newText.toString());        }        return true;    }

    三、源码

    JimengSearchView.java

    public class JimengSearchView extends Activity implements SearchView.OnQueryTextListener {    private SearchView mSearchView;    private ListView mListView;    private ArrayAdapter<String> mAdapter;    private final String[] mStrings = Cheeses.sCheeseStrings;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);        setContentView(R.layout.searchview_filter);        mSearchView = (SearchView) findViewById(R.id.search_view);        mListView = (ListView) findViewById(R.id.list_view);        mListView.setAdapter(mAdapter = new ArrayAdapter<>(this,                android.R.layout.simple_list_item_1,                mStrings));        //设置是否可以通过键盘输入的字符来过滤掉不需要的选项,定位到需要的选项。        mListView.setTextFilterEnabled(true);        setupSearchView();        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                String str = (String)((TextView) view).getText();                Toast.makeText(JimengSearchView.this,str,Toast.LENGTH_SHORT).show();            }        });    }    private void setupSearchView() {        //设置搜索框直接展开显示。左侧有放大镜(在搜索框中) 右侧有叉叉 可以关闭搜索框        //mSearchView.setIconified(false);        //设置搜索框直接展开显示。左侧有放大镜(在搜索框外) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框        //mSearchView.setIconifiedByDefault(false);        //设置搜索框直接展开显示。左侧有无放大镜(在搜索框中) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框        mSearchView.onActionViewExpanded();        //为 SearchView 中的用户操作设置侦听器。        mSearchView.setOnQueryTextListener(this);        //当查询非空时启用显示提交按钮。        mSearchView.setSubmitButtonEnabled(false);        //查询提示语句        mSearchView.setQueryHint(getString(R.string.cheese_hunt_hint));    }    //用户输入字符时激发该方法    public boolean onQueryTextChange(String newText) {        if (TextUtils.isEmpty(newText)) {            mListView.clearTextFilter();        } else {            mListView.setFilterText(newText.toString());        }        return true;    }    public boolean onQueryTextSubmit(String query) {        return false;    }}

    布局文件:

    <LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">    <SearchView            android:id="@+id/search_view"            android:layout_width="match_parent"            android:layout_height="wrap_content"/>    <ListView            android:id="@+id/list_view"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_weight="1"/></LinearLayout>

    strings.xml

    <string name="cheese_hunt_hint">请输入要查询的内容</string>

    Cheeses.java

    public class Cheeses {    public static final String[] sCheeseStrings = {            "Android自定义view之3D正方体","计蒙不吃鱼","Android自定义view之利用drawArc方法实现动态效果","Android 3D效果的实现","OkHttp源码解析",            "Android翻转动画(卡片翻转效果)","Android自定义view之围棋动画","Android自定义view之模仿登录界面文本输入框(华为云APP)",            "Android自定义view之太极图","Android自定义view获取attr中自定义颜色的问题","Android对抗反编译","Android常用的room增删改查语句(外部数据库)",            "Android用canvas画一个折线图,并加以简单封装","Android用Canvas画一个真正能跑的跑马灯","Android网络小说阅读器的实现",            "Android护眼模式(argb)","Android约束布局ConstraintLayout","Android实现EditText的抖动效果"    };}

    “Android怎么实现简单动态搜索功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: Android怎么实现简单动态搜索功能

    本文链接: https://www.lsjlt.com/news/328874.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Android怎么实现简单动态搜索功能
      本篇内容介绍了“Android怎么实现简单动态搜索功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言提到Android的动态搜索,大多应...
      99+
      2023-06-30
    • Android实现简单动态搜索功能
      目录前言一、addTextChangedListener二、本文案例1.介绍一下SearchView的一些方法2.准备数据3.初始化以及填充数据4.在SearchView中用户输入字...
      99+
      2022-11-13
    • 怎么用ajax实现简单搜索功能
      这篇文章主要讲解了“怎么用ajax实现简单搜索功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用ajax实现简单搜索功能”吧!本文实例讲述了基于aja...
      99+
      2022-10-19
    • android怎么实现搜索功能
      要实现Android应用的搜索功能,你可以按照以下步骤进行操作: 创建一个搜索框:在你的布局文件中添加一个EditText或Se...
      99+
      2023-10-26
      android
    • Vue如何实现简单搜索功能
      这篇文章主要讲解了“Vue如何实现简单搜索功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现简单搜索功能”吧!1、概述在vue项目中,搜索功能是我们经常需要使用的一个场景,最常...
      99+
      2023-07-05
    • Android中怎么实现poi搜索功能
      Android中怎么实现poi搜索功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一,就是设置背景的drawable为纯白色导致键盘弹出的时候,recyclerview...
      99+
      2023-05-30
      android
    • Python实现简单的索引排序与搜索功能
      今天,我上的课,学了索引排序与搜索。让我们用Python实现,觉得有点意思就跟大家分享一波。 代码如下图: import requests import re def News...
      99+
      2022-11-12
    • 微信小程序实现简单搜索功能
      本文实例为大家分享了微信小程序实现简单搜索功能的具体代码,供大家参考,具体内容如下 搜索效果图 实现功能如下 (1) 未找到商品时显示提示信息,找到商品时显示商品列表 (2) 清空...
      99+
      2022-11-13
    • Vue实现简单搜索功能的示例代码
      目录1、概述2、功能逻辑2.1功能流程2.2 流程图3、功能实现3.1 vue组件化3.2 代码3.3 动态效果1、概述 在vue项目中,搜索功能是我们经常需要使用的一个场景,最常用...
      99+
      2023-03-19
      Vue实现搜索功能 Vue搜索功能 Vue搜索
    • java怎么实现搜索框搜索功能
      要实现搜索框搜索功能,可以按照以下步骤进行:1. 在前端页面上创建一个搜索框,如一个文本框和一个按钮。2. 在后端创建一个处理搜索请...
      99+
      2023-09-26
      java
    • Android实现模拟搜索功能
      本文实例为大家分享了Android实现模拟搜索功能的具体代码,供大家参考,具体内容如下 先看效果图,合适了再接着往下看: 我们看到的这个页面,是由两部分组成,顶部的自定义的搜索框,...
      99+
      2022-11-12
    • Android实现实时搜索框功能
      AutoCompleteTextView,自动完成文本框。用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。该组件继承EditText,所以它支持EditText组件提供的属...
      99+
      2023-05-30
      android 搜索框 roi
    • 自定义搜索功能Android实现
      先看看效果图: 源码下载:自定义搜索功能 代码: SearchActivity.java package com.bzu.gxs.search.activity; impo...
      99+
      2022-06-06
      自定义 Android
    • Android中怎么实现淘宝搜索联想功能
      Android中怎么实现淘宝搜索联想功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。思考当搜索词为空时,不应该发起网络请求。在用户连续输入的情况下,可能会发起某些不必要的...
      99+
      2023-05-30
      android
    • 简单实现Android端搜索框示例详解
      目录正文一、效果展示二、快速使用及属性介绍快速使用具体代码主要方法介绍1、搜索框监听2、搜索列表点击事件3、改变最近(历史)搜索item背景4、动态设置热门搜索热度属性介绍Searc...
      99+
      2022-11-13
      Android端搜索框 Android 搜索框
    • jquery如何实现静态搜索功能
      这篇文章主要为大家展示了“jquery如何实现静态搜索功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jquery如何实现静态搜索功能”这篇文章吧。效果图:代...
      99+
      2022-10-19
    • springboot+redis实现简单的热搜功能
      使用springboot集成redis实现一个简单的热搜功能。 搜索栏展示当前登录的个人用户的搜索历史记录;删除个人用户的搜索历史记录;插入个人用户的搜索历史记录;用户在搜索栏输入某...
      99+
      2022-11-13
    • Android简单实现画图功能
      如何在图片上画画呢?这里写了一个demo,供大家参考 一、先看一眼工程结构 工程结构: 二、自定义view 这个自定义view实现了保留轨迹的功能,代码如下 packag...
      99+
      2022-06-06
      Android
    • Android怎么实现简单的拨号器功能
      这篇文章给大家分享的是有关Android怎么实现简单的拨号器功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简易拨号器的制作方法,具体如下一、布局构造<RelativeLayout xmlns:...
      99+
      2023-05-30
      android
    • android中AutoCompleteTextView的简单用法(实现搜索历史)
      网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存 下面先上我写的代码: i...
      99+
      2022-06-06
      Android
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作