首页
学习
活动
专区
工具
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.5K100

Android开发之搜索框SearchView用法示例

本文实例讲述了Android开发之搜索框SearchView用法。分享给大家供大家参考,具体如下: 介绍: SearchView时搜索组件,可以让用户输入文字,见他输入匹配结果 效果: ?...基本的用法 我就不详细描述了 这里主要说一些我遇到的问题: 如下: 一、点击listView后 让文字自动补全到searchView: 首先需要设置adapter 然后这只listView的点击事件:...(string.toString(),true); } }); 二、删除listView自带过滤器的黑框: onQueryTextChange 对adapter设置:adapter.getFilter...} return true; } 下面给出效果图的的完整实现方法: public class MainActivity extends Activity { private SearchView...--定义一个SearchView-- <SearchView android:id="@+id/sv" android:layout_width="match_parent"

2.8K10
  • Android ListView 实现拉加载的示例代码

    本文介绍了Android ListView 实现拉加载的示例代码,分享给大家,具体如下: ? 我们先分析一下如何实现 ListView 拉加载。...当我们拉的时候,会出现一个提示界面,即 ListView 的 Footer 布局。...ListView实现滚动,所以要监听 ListView 滚动事件,即 OnScrollListener() 事件。...实现思路 首先判断 ListView 加载时机,当 ListView 的 lastVisibleItem == totalItemCount 时表示当前处于 ListView 最底端,此时允许下拉。...1、定义 Footer Footer 要实现的效果: 第一次拉时,Footer 逐渐显示,文字显示为下拉可以加载,箭头向上,进度条隐藏。 当松开加载的时候,箭头隐藏,进度条展示,文字改为正在加载。

    2K10

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

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

    2.8K10

    android使用SwipeRefreshLayout实现ListView下拉刷新拉加载

    本文实例为大家分享了android实现ListView下拉刷新拉加载的具体代码,供大家参考,具体内容如下 image.png 这次使用的是系统的SwipeRefreshLayout实现下拉刷新,和设置...ListView的滑动监听判断是否滑动到最底部然后加载更多; 这个要比PullToRefreshListView简单很多,想PullToRefreshListView实现下拉刷新拉加载的可以看这篇博客...: android使用PullToRefresh框架实现ListView下拉刷新拉加载更多 至于使用哪一种大家可以根据产品的需求选择,这两种刷新目前为止世面上还是使用PullToRefreshListView...5、setSize():设置进度圈的大小 这个大家简单了解一下,下面代码中都一一用到; 首先说下布局文件,如果想用SwipeRefreshLayout实现下拉刷新必须把ListView写到SwipeRefreshLayout...1秒的handler,然后添加数据刷新adapter; 拉加载更多的时候直接给ListVIew设置了一个滑动监听,判断是否滑动到adapter的最下面,然后加载数据,刷新adapter; public

    2K20

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

    给我们提供的AutoCompleteTextView往往就不够用,大多情况下我们都需要自己去实现搜索框。..." android:layout_height="200dp" </ListView </LinearLayout 注意:demo中颜色什么的都直接用的rgb 值去设置,实际开发时..." </com.yetwish.customsearchdemo.activity.widge.SearchView <ListView android:visibility="gone"...比较简单,只要给SearchView设置onSearchViewListener监听接口,实现对应的方法,并给SearchView传入热搜版和自动补全的adapter既可。...这里使用的匹配算法比较简单,也没有考虑多个搜索词的情况,(这些之后都可以再完善),主要实现就是总数据中匹配每个Bean的Title是否包含搜索词,包含则表示该数据匹配,否则不匹配。

    4.7K10

    android使用PullToRefresh框架实现ListView下拉刷新拉加载更多

    本文实例为大家分享了Android实现ListView下拉刷新拉加载更多的具体代码,供大家参考,具体内容如下 ?...其实谷歌官方目前已经推出ListView下拉刷新框架SwipeRefreshLayout,想了解的朋友可以点击 android使用SwipeRefreshLayout实现ListView下拉刷新拉加载...jar包,而是把下拉刷新功能直接抽取出来使用; 当下拉的时候回调监听,抽取完下拉刷新功能的基础实现拉加载更多功能实现也非常简单,所以顺手写上了; 我是从github上下载的Android-PullToRefresh-master.../apk/res-auto" android:id="@+id/pull_to_refresh_listview" android:layout_width="wrap_content"...arrayAdapter.notifyDataSetChanged(); //关闭刷新的动画 pullToRefreshListView.onRefreshComplete(); } }; }; } 判断拉刷新和下拉加载的时候

    1.8K10

    Android实现HttpServer的示例代码

    最近的项目中因为要用Android作为一个服务器去做一个实时接收数据的功能,所以这个时候就要去做一个Android本地的微型服务器。...但是实际我们根本用不到这么大型的服务器框架,配置这些都太麻烦。所以,我又找到了Ijetty、NanoHttpd和AndroidAsync这三个框架,都是比较微型的,适用于Android的。...例如html),那注意区分两种请求,例如可以用uri去识别;当然返回都可以用流的形式,都可以调用API方法newFixedLengthResponse(); 4)笔者建议,最好处理一下跨域的问题,因为是Android...有可能和h5联调,所以设置了跨域以后比较方便调试,当然某些场景也可以忽略,看个人需求;方法已经以上代码中写了; 5)当然最后最重要的一点肯定是开启和关闭的代码了: /** * 开启本地网页点歌的服务...5)说一下OPTIONS的坑点,因为AndroidAsync这个框架中封装的返回http的状态码只有两种,假如过滤方法中没有包含例如OPTIONS的请求方法,实际返回给客户端的http状态码是400,

    1.7K21

    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.5K60

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

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

    3.3K30

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

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

    1.8K30

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

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

    1.3K10

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

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

    8.7K20

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

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

    1.2K10
    领券