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

在字符串类型listview Android上实现searchview

在字符串类型的ListView上实现SearchView,可以通过以下步骤完成:

  1. 创建一个包含字符串的列表(List)作为ListView的数据源。
  2. 创建一个自定义的适配器(Adapter),继承自BaseAdapter或ArrayAdapter,用于将数据源中的字符串显示在ListView中的每个项上。
  3. 在布局文件中添加一个SearchView控件,用于接收用户输入的搜索关键字。
  4. 在Activity或Fragment中,找到ListView和SearchView控件,并设置相应的监听器。
  5. 在SearchView的监听器中,实现搜索功能。当用户输入关键字时,根据关键字过滤数据源中的字符串,并更新适配器的数据集。
  6. 在ListView的适配器中,根据更新后的数据集重新显示列表项。

以下是一个示例代码:

  1. 创建一个包含字符串的列表(List)作为ListView的数据源:
代码语言:java
复制
List<String> dataList = new ArrayList<>();
dataList.add("Apple");
dataList.add("Banana");
dataList.add("Orange");
// 添加更多的字符串...
  1. 创建一个自定义的适配器(Adapter),继承自BaseAdapter或ArrayAdapter,用于将数据源中的字符串显示在ListView中的每个项上:
代码语言:java
复制
public class MyAdapter extends BaseAdapter {
    private List<String> dataList;
    private LayoutInflater inflater;

    public MyAdapter(Context context, List<String> dataList) {
        this.dataList = dataList;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return dataList.size();
    }

    @Override
    public Object getItem(int position) {
        return dataList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
        }

        TextView textView = convertView.findViewById(android.R.id.text1);
        textView.setText(dataList.get(position));

        return convertView;
    }
}
  1. 在布局文件中添加一个SearchView控件,用于接收用户输入的搜索关键字:
代码语言:xml
复制
<SearchView
    android:id="@+id/searchView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
  1. 在Activity或Fragment中,找到ListView和SearchView控件,并设置相应的监听器:
代码语言:java
复制
ListView listView = findViewById(R.id.listView);
SearchView searchView = findViewById(R.id.searchView);
  1. 在SearchView的监听器中,实现搜索功能。当用户输入关键字时,根据关键字过滤数据源中的字符串,并更新适配器的数据集:
代码语言:java
复制
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        List<String> filteredList = new ArrayList<>();
        for (String item : dataList) {
            if (item.toLowerCase().contains(newText.toLowerCase())) {
                filteredList.add(item);
            }
        }
        ((MyAdapter) listView.getAdapter()).setDataList(filteredList);
        ((MyAdapter) listView.getAdapter()).notifyDataSetChanged();
        return true;
    }
});
  1. 在ListView的适配器中,根据更新后的数据集重新显示列表项:
代码语言:java
复制
public void setDataList(List<String> dataList) {
    this.dataList = dataList;
}

这样,当用户在SearchView中输入关键字时,ListView会根据关键字过滤并显示匹配的字符串项。

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

相关·内容

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

一、SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。...setImeOptions(int) 设置输入法搜索选项字段,默认是搜索,可以是:下一页、发送、完成等 android:inputType setInputType(int) 设置输入类型 android...:maxWidth setMaxWidth(int) 设置最大宽度 android:queryHint setQueryHint(CharSequence) 设置查询提示字符串 如果为SearchView...; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView...在搜索框中输入内容后,可以看到上图右侧所示筛选效果。 关于SearchView的简单使用先学到这里,更多用法建议自己多加练习。

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

    需求场景 在开始coding前, 理解好用户的需求场景 有助于我们更好地设计 & 实现功能 需求场景如下 ? ---- 3. 业务流程图 根据场景,梳理出来的功能业务流程图如下: ? ---- 4....先下载Demo再阅读,效果会更好:Carson_Ho的Github地址:Search_Layout 结构说明 文件类型 作用 SearchView.java 搜索框所有功能的实现 RecordSQLiteOpenHelper.java...X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度 } /** * 步骤3:通过监听复写EditText本身的方法来确定是否显示删除图标...) searchview.SearchListView android:id="@+id/listView...总结 相信你一定会喜欢上 这款简单 & 好用的SearchView控件 已在Github上开源:SearchView,欢迎 Star !

    3K10

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

    onPageSelected : 在页面选择时调用,该方法用得较多。位置参数表示当前页面的序号。 翻页事件的具体实现代码可参考《Android开发笔记(二十一)横幅轮播页Banner》。...文本变化事件的具体实现代码可参考《Android开发笔记(三十六)展示类控件》。...在博文《Android开发笔记(二十)顶部导航栏ActionBar》里面,博主提到ActionBar自带的搜索框SearchView,但是SearchView存在几点不足: 1、搜索按钮只能显示图标,...基于此,博主在下面又给出了基于EditText+ListView的实现方式,该方式除了在列表中显示关键词与数量外,还增加了一个叉号按钮用来立即清空文本框。...android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener

    1.1K10

    在Android系统上实现免费手机IP更改

    今天我分享如何在Android系统上实现免费手机IP更改。随着互联网的普及,许多人希望能够保护隐私、畅享自由的网络体验。而手机IP的更改则提供了一个有效的途径来实现这个目标。  ...下面,我将介绍几种简单且免费的方法,让你能够在Android系统上能够进行IP的更改。  使用静态IP设置:在Android设备的网络设置中,你可以手动配置静态IP地址。...通过更改为不同的静态IP地址,你可以在一定程度上实现更改手机IP的效果。  1、在Android设备的设置中找到“网络和互联网”选项。  ...2、然后进入“Wi-Fi”或“移动网络”设置(根据你当前使用的网络类型)。  3、找到你当前连接的网络,并长按该网络的名称,选择“修改网络”或类似选项。  ...在尝试此方法之前,请确保你了解可能的风险和影响,以及如何恢复到原始设置。  以上是不需要使用软件的基本方法来尝试在Android系统上实现免费更改手机IP。

    1.9K60

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

    移动设备是这套设计语言的基础对象,让用户在不同的平台、不同尺寸的设备上能保持一致的体验。 Material Design强调交互上的即时反馈,即对于用户的触控等行为app需要给出即时的反应。...android:clipChildren=”false” 子控件是否能不超出padding的区域(比如ScrollView上滑动的时候,child可以滑出该区域) 然后监听滑动事件,这里如果是ScrollView...(R.menu.main, menu); //SearchView在Menu里面,我们通过Item的getActionView就可以找到 MenuItem item = menu.findItem...用TabLayout实现底部导航(相对于传统的TabHost,它是可滑动的) 只需要三个步骤: 1.在布局中就把TabLayout放在布局底部 2。...注意:滑动控件指的是:RecyclerView/NestedScrollView/ViewPager,意味着ListView、ScrollView不行。

    3.4K30

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

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

    1.9K30

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

    该属性的取值类型主要有: ifRoom : 如果ActionBar右侧有空间,则该项直接显示在ActionBar上面,不再放入溢出菜单。...never : 从不在ActionBar上直接显示,一直放在溢出菜单里面。 always : 总是在ActionBar上显示。...标签切换模式在实际开发中用得不多,类似效果一般采用底部标签栏或者ViewPager实现。...另外,更换左侧返回区域的返回箭头图标,可通过ActionBar的setIcon来实现。但该方法在Android4.4.2之后才支持,之前版本的系统仍然不支持定制左侧返回图标。...搜索框SearchView 搜索框有些复杂,实现步骤大致如下: 1、在菜单布局文件中定义搜索项: <item android:id="@+id/menu_search"

    9.2K20

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

    今天讲的就是一个很简单的具体开始时候遇到的需求,在标题栏中实现搜索功能,而且美工要求需要实现下面GIF图的效果,我就实现了下,可能不是最好的,有哪里可以更方便请大家指出。...正好仔细的讲解了下SearchView和Toolbar。希望大家看看我哪里是不是讲错了。哈哈。 ? 1.先抛开搜索功能,我们看如何单纯实现下图的标题栏的界面: ?...当然大家在这个需求上面,用个其他类型的ViewGroup也是一样的。...>复制代码 ---- 2.实现搜索框功能 我们上面说过Toolbar实际上就是一个ViewGroup,所以我就想到可以让Toolbar中包含一个FragmentLayout,然后在这个上面的标题的标题及搜索图标按钮上面...同时记得对SearchView设置搜索事件: searchView.setOnQueryTextListener(this);复制代码 Activity 实现SearchView.OnQueryTextListener

    1.4K10

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

    ,当点击的时候,开启另外一个界面进行搜索,但是业务要求:点击搜索按钮,就会出现输入框,点击返回时,又会再次收起,我们就可以使用SearchView来实现。...SearchView拥有强大的功能和属性,让我们在做搜索框时不再使用EditText和大量处理来实现!简单、方便! 使用 SearchView一般与ToolBar结合使用,下面我们以此为例一起探讨。...app:showAsAction="always"/> 其中,actionViewClass中指定view类型为SearchView 2、布局文件中添加ToolBar android.support.v7...4、更换默认图标颜色 SearchView的默认图标都是黑色的,如果我们想换成其他颜色,在Activity的主题中,指定Toolbar菜单项图标的颜色 在框内,设置false则在框外 searchView.setSubmitButtonEnabled(true);// 显示提交按钮 searchView.setQueryHint

    1.2K10

    Android开源实战:简单好用、含历史搜索记录的智能搜索框

    功能介绍 2.1 需求场景 在开始coding前, 理解好用户的需求场景 有助于我们更好地设计 & 实现功能 需求场景如下 2.2 功能需求 业务流程图 根据场景,梳理出来的功能业务流程图如下:...:地址:SearchView 具备详细的源码分析文档:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录) 所以,在其上做二次开发 & 定制化成本非常低。...完整Demo地址 Carson_Ho的Github地址:SearchView 6. 源码解析 具体请看文章:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录) 7....贡献代码 希望你们能和我一起完善这款简单 & 好用的SearchView控件,具体请看:贡献说明 关于该开源项目的意见 & 建议可在Issue上提出。欢迎 Star ! 8....总结 相信你一定会喜欢上 这款简单 & 好用的SearchView控件 已在Github上开源:SearchView,欢迎 Star !

    1.8K20

    Android自定义View:你需要一个简单好用、含历史搜索记录的搜索框吗?

    功能介绍 2.1 需求场景 在开始coding前, 理解好用户的需求场景 有助于我们更好地设计 & 实现功能 需求场景如下 ?...:地址:SearchView 具备详细的源码分析文档:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录) 所以,在其上做二次开发 & 定制化成本非常低。...使用示例 在XML文件中进行设置 activity_main.xml searchview.SearchView android:id="@+id...源码解析 具体请看文章:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录) ---- 7....总结 相信你一定会喜欢上 这款简单 & 好用的SearchView控件 已在Github上开源:SearchView,欢迎 Star !

    2.5K30

    actionbar完全解析(一)

    其实也很简单,使用label属性来指定一个字符串就可以了,如下所示: <activity android:name="com.example.actionbartest.MainActivity"...这里我们注意到,显示在ActionBar上的按钮都只有一个图标而已,我们在title中指定的文字并没有显示出来。...可以看到,在ActionBar图标的左侧出现了一个向左的箭头,通常情况下这都表示返回的意思,因此最简单的实现就是在它的点击事件里面加入finish()方法就可以了,如下所示: @Override public...这就是ActionBar导航和Back键在设计上的区别,那么该怎样才能实现这样的功能呢?其实并不复杂,实现标准的ActionBar导航功能只需三步走。...为了声明一个ActionView,我们可以在menu资源中通过actionViewClass属性来指定一个控件,例如可以使用如下方式添加SearchView: android=

    1.1K100

    怎样在Android上实现一个iOS多任务列表效果

    那怎样在Android上实现一个iOS多任务列表效果呢? 一. 实现效果 先看看iOS的多任务列表长啥样。 1-min.gif 再来看看华为的多任务列表。...区域内,不止是ViewPager,平时的listview,scrollview这类滚动控件,都是可以通过这个接口来避免上述问题,内部实现原理这里不展开。        ...不是的,还涉及到一个数据问题,我们上面移除item都是在View(ViewPager)层做的,可以说,只是展示效果上实现了移除一个item,但真实的数据是在Adapter里,需要在动画结束后回调给Adapter...总结 最后总结一下,本篇介绍了如何基于ViewPager,实现了一个类似iOS多任务列表效果,主要目的在于验证方案的可行性,即如何在已有控件的基础上快速复用来实现我们要的效果,虽然效果实现出来了,但对比...)是从左边开始的,要实现成从右边开始,理论上可以实现,即把ViewPager所有和X坐标相关的操作都给他反过来就是了,目测需要改动的地方不少,先不折腾了,实现了的同学可以分享下哈。

    3.7K60

    Android技术积累:开发规范

    上个月发布了Android项目重构的三篇系列文章,其中,界面篇中提到了在项目中保持规范性的重要性,也有简单举了几个例子。这篇文章则将其延伸,提供更完整的开发规范说明。 书写规范 1....应用中的字符串统一在strings.xml中定义,然后在代码和布局文件中引用。 14. 颜色值统一在colors.xml中定义,然后在代码和布局文件中引用。...-- 这是登录按钮 --> <Button android:id="@+id/btn_login" ... /> 8. layout命名 组件类型_{范围_}功能,范围可选,只在有明确定义的范围内才需要加上...命名格式 footerlist{范围_}功能,为ListView的FooterView命名格式 9. strings的命名 类型_{范围_}功能,范围可选。...动画文件命名 动画类型_动画方向。

    1.3K20
    领券