首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:在SearchView中输入文本时阻止文本字段弹出

云计算领域专家

在 Android 开发中,当使用 SearchView 输入文本时,阻止文本字段弹出可以通过以下方法实现:

  1. SearchView中设置InputTypeTEXT_ONLY:这将使搜索框仅接受文本输入。在 XML 文件中,将 SearchViewInputType 属性设置为 TEXT_ONLY
代码语言:xml
复制

<androidx.searchview.widget.SearchView

代码语言:txt
复制
   android:inputType="textOnly"
代码语言:txt
复制
   ...

/>

代码语言:txt
复制
  1. 实现TextWatcher来拦截输入事件:你可以在 ActivityFragment 中实现 TextWatcher,以拦截 SearchView 的输入事件。当用户在搜索框中输入文本时,将输入事件传递给自定义的 TextWatcher,然后在事件回调中阻止文本输入。
代码语言:java
复制

SearchView searchView = findViewById(R.id.search_view);

searchView.addTextChangedListener(new TextWatcher() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
代码语言:txt
复制
       // 在输入文本之前执行的操作
代码语言:txt
复制
   }
代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
代码语言:txt
复制
       // 输入文本时执行的操作
代码语言:txt
复制
   }
代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void afterTextChanged(Editable editable) {
代码语言:txt
复制
       // 输入文本后执行的操作
代码语言:txt
复制
       // 阻止文本输入
代码语言:txt
复制
       searchView.setSuggestionsAdapter(null);
代码语言:txt
复制
   }

});

代码语言:txt
复制

在这个例子中,我们实现了 afterTextChanged 方法,并在其中阻止文本输入。你可以在这个方法中添加自定义逻辑,例如隐藏或显示搜索建议。

  1. 使用Filter接口:你还可以在 SearchView 中使用 Filter 接口,以自定义搜索建议的行为。通过实现 Filter 接口,你可以重写 filter 方法,并在其中执行自定义过滤逻辑。
代码语言:java
复制

SearchView searchView = findViewById(R.id.search_view);

searchView.setSuggestionsAdapter(new SearchView.SuggestionsAdapter() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public Filter getFilter() {
代码语言:txt
复制
       return new Filter() {
代码语言:txt
复制
           @Override
代码语言:txt
复制
           public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
代码语言:txt
复制
               // 自定义过滤逻辑
代码语言:txt
复制
           }
代码语言:txt
复制
       };
代码语言:txt
复制
   }

});

代码语言:txt
复制

以上方法可以帮助你在 SearchView 中阻止文本输入。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用 Selenium HTML 文本输入模拟按 Enter 键?

通过阅读本篇博客,大家将能够使用 selenium HTML 文本输入模拟按 Enter 键。...下载 chrome webdriver ,请确保 webdriver 版本与浏览器版本兼容。 为了模拟按下回车,用户可以 python 自动化脚本代码添加以下行。...HTML_ELEMENT.send_keys(Keys.ENTER) 百度百科上使用 selenium 搜索文本:在这一部分,我们将介绍用户如何使用 selenium 打开百度百科站点并在百度百科或其他网站上自动搜索文本...方法: 1.从 selenium 导入 webdriver 2.初始化 webdriver 路径 3.打开任意网址 4.使用下面的任何方法查找搜索元素 5.搜索字段输入文本 6.按回车键搜索输入文本...input = webdriver.find_element_by_id("searchInput") # 将输入文本发送到搜索字段 input.send_keys("Python")

8.2K21
  • Android自定义View实现搜索框(SearchView)功能

    搜索界面大致由三部门组成,如图:输入框+(自动补全)提示框+结果列表。 2. 提示框的数据与输入输入文本是实时联动的,而结果列表只有每次进行搜索操作才会更新数据 3....输入框的UI应是动态的,即UI随着输入文本的改变而改变,如:输入文本,清除按钮 ? 应该是隐藏的;只有当框中有文本才会显示。 4. 软键盘也应该是动态的,如完成搜索应自动隐藏。...选择提示框的选项会自动补全输入框,且自动进行搜索 6. (external)有热门搜索推荐/记录搜索记录的功能——热门搜索推荐列表只刚要进行搜索的时候弹出,即未输入文本,可供用户选择。...当输入框有文本,点击输入框,应显示自动补全列表框。 3. 当输入框的文本发生改变,需要更新自动补全列表框的数据。...当输入框的文本从空”“变换到非空,即有字符,界面应显示自动补全框,隐藏热门搜索框。 5. 当输入框的文本从非空变为空,系统应隐藏自动补全框和热门搜索框。 6.

    4.9K10

    很多人不知道还有这个——搜索框组件SearchView

    一、SearchView概述 SearchView是搜索框组件,它可以让用户文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索,也可通过监听器执行实际的搜索。...SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标。用SearchView可指定如下表所示的常见XML属性及相关方法。...setImeOptions(int) 设置输入法搜索选项字段,默认是搜索,可以是:下一页、发送、完成等 android:inputType setInputType(int) 设置输入类型 android...android:layout_weight="1" /> 上面的布局文件定义了一个SearchView组件,并为该SearchView组件定义了一个 ListView...搜索框输入内容后,可以看到上图右侧所示筛选效果。 关于SearchView的简单使用先学到这里,更多用法建议自己多加练习。

    1.5K100

    Android开发笔记(四十四)动态UI事件

    onTextChanged : 文本变化调用。 afterTextChanged : 文本变化后调用,该方法用得较多。...不能显示中文; 2、搜索框只能放在顶部的ActionBar里面,不能放置于页面的其它位置; 3、用户输入搜索文本SearchView无法给出近似的关键词列表提示; 因为SearchView的这些先天不足...,所以实际开发很少直接使用SearchView。...: 设置下拉列表的宽度 setSingleLine : 设置列表的每个元素是否单行显示 示例代码主要实现了三个功能: 1、文本框一开始获得焦点,自动弹出历史搜索关键词下拉列表; 2、...比如弹出商品关键词列表,往往还希望每行后面显示该关键词对应的商品数量,从而让用户更有目的地选择合适的商品。

    1.1K10

    Android开发笔记(一百一十九)工具栏ToolBar

    dismissPopupMenus : 关闭已弹出的菜单。 SearchView v7包带来Toolbar的同时,也带来了一个加强版的SearchView。...与android.support.v7.widget.SearchView的主要区别: 二者调用时的区别: 1、菜单布局文件,旧SearchView的写法是android:actionViewClass...SearchAutoComplete控件,该控件SearchView是隐藏的,SearchView是开放的,所以我们可随意修改v7编辑框的显示风格。...2、基于上一点,新控件可取到SearchAutoComplete的对象,因此我们可给该对象注册自动完成的字符串适配器,在用户输入文字,界面会自动弹出符合搜索条件的关键词列表; 3、setAppSearchData...方法SearchView是隐藏的,SearchView是开放的,所以旧控件只能传递搜索文本给结果页面,而新控件允许传递其他的额外信息给搜索结果页面。

    1.9K30

    Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)

    前言 Android开发,类似下图的搜索功能非常常见 ? 今天,我将手把手教大家实现一款 封装了 历史搜索记录功能 & 样式 的Android 自定义搜索框 开源库,希望你们会喜欢。 ?...功能详细设计 下面将给出详细的功能逻辑 6.1 关键字搜索 描述:根据用户输入的搜索字段进行结果搜索 原型图 注:关键字搜索功能是因人而异的,所以本源码仅留出接口供开发者实现,不作具体实现 ?...void onTextChanged(CharSequence s, int start, int before, int count) { } // 输入文本后调用该方法...当输入框为空 & 数据库中有搜索记录,才显示 "删除搜索记录"按钮 if (tempName.equals("") && cursor.getCount() !...else { tv_clear.setVisibility(INVISIBLE); }; } 6.4 保存历史搜索记录 描述:将用户输入的搜索字段保存到数据库

    2.8K10

    Android利用EditText如何实现搜索框详解

    EditText简介: ED(EditText的简称)开发也是经常使用到的一个控件, 也是一个比较重要的组件,可以说它是用户跟应用进行数据传输的窗口,比如实现一个登陆界面, 需要用户输入账号和密码...SearchView的自定义样式 我还只实现了部分自定义,输入框那里底部的蓝色线条实在不知道怎么清除掉,有大神可以指教一下。...文本框的字体颜色大小等: "android:id/search_src_text" 不要问我怎么知道的,searchview源码里写的呀。...EditText实现SearchView功能 前面searchview里面,如果要将键盘的换行改成搜索,是要修改imeOptions的属性即可,而Edittext的属性里其实是有这个的,所以edittext...的布局添加imeOptions = “actionSearch” ,但是只添加这个属性是无法实现的。

    2.1K31

    Android开发笔记(二十)顶部导航栏ActionBar

    :windowNoTitle,为true表示关闭ActionBar;为false表示显示 true 3、Activity...所以要想在菜单列表显示左侧图标,需要调用MenuBuilder的setOptionalIconsVisible方法(MenuBuilderAndroid内核,未开放出来,只能通过反射机制来调用)。...搜索框SearchView 搜索框有些复杂,实现步骤大致如下: 1、菜单布局文件定义搜索项: <item android:id="@+id/menu_search"...> 4、菜单代码初始化搜索框,并关联搜索动作对应的activity(本例的activity是SearchResultActvity) private void initSearchView...searchView.setSubmitButtonEnabled(true); //设置搜索框内的默认显示的提示文本 //searchView.setQueryHint(getResources

    8.9K20

    Material Design整理(六)——SearchView及FlexboxLayout

    github地址:https://github.com/shuaijia/MaterialDesignDemo 简介 大多APP都具有搜索功能,但是大部分都是标题栏中放置搜索的图标或者是不可输入的EditText...,当点击的时候,开启另外一个界面进行搜索,但是业务要求:点击搜索按钮,就会出现输入框,点击返回,又会再次收起,我们就可以使用SearchView来实现。...SearchView拥有强大的功能和属性,让我们在做搜索框不再使用EditText和大量处理来实现!简单、方便! 使用 SearchView一般与ToolBar结合使用,下面我们以此为例一起探讨。...app:showAsAction="always"/> 其中,actionViewClass中指定view类型为SearchView 2、布局文件添加ToolBar <android.support.v7...attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> ToolBar添加得再正常不过了 3、Activity获取

    1.2K10

    项目需求讨论-标题栏上的搜索功能

    ---- 3.SearchView的显示及键盘弹出 SearchView基础我就不重复了,先附上其他大神写的SearchView的相关基础知识: 搜索框(SearchView)的功能与用法 详细解读Android...的搜索框(三)—— SearchView 我们看到,GIF图中,当我点击了搜索图标按钮的时候,SearchView 的Visible设为显示状态,同时键盘出现,然后当我点击取消按钮的时候,SearchView...写上此句后searchView初始展开的,也就是是可以点击输入的状态,如果不写,那么就需要点击下放大镜,才能展开出现输入框。...调用setIconifiedByDefault(false) 从上面图片可以看到,设为false和true的区别在于输入的光标的显示位置,如果为true,设光标放大镜的前面,而且,当你输入文字后,放大镜也会不见...,设为false,则光标放大镜后面,输入文字,放大镜也不会消失。

    1.4K10

    一篇博客让你了解Material Design的使用

    Adapter的onCreateViewHolder,需要Inflate布局文件,有三种写法: View itemView = View.inflate(parent.getContext(),...添加增删接口 Adapter添加以及删除的接口: //条目的增删 public void addItem(String data, int position) { mDatas.add(...并且滑动的过程不断 刷新左上角的Drawerable: @Override public void onDrawerSlide(View drawerView, float slideOffset)...(200); //输入提示 SearchView.SearchAutoComplete et = (SearchView.SearchAutoComplete) searchView.findViewById...版本判断会比较麻烦,谷歌很贴心 设计了一个兼容类:ActivityOptionsCompat(v4包),但是此类低版本上面并没有转场动画效果,只是解决了我们手动去判断版本的问题而已。

    3.3K30
    领券