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

android SearchView从数组返回REsults,但不更新新信息

Android SearchView是一个用于搜索功能的控件,它可以让用户在应用中搜索特定的内容。当用户在SearchView中输入关键字并提交搜索时,我们可以通过数组来返回搜索结果,但是在返回结果时不更新新信息的问题可以通过以下步骤解决:

  1. 首先,确保你已经正确地设置了SearchView的监听器,以便在用户提交搜索时触发相应的操作。
  2. 在监听器的回调方法中,你可以获取用户输入的关键字,并使用这些关键字来过滤你的数据源数组,以获取匹配的搜索结果。
  3. 创建一个新的数组或集合,用于存储过滤后的搜索结果。
  4. 遍历原始数据源数组,将与用户输入关键字匹配的项添加到新的结果数组中。
  5. 最后,将新的结果数组用于更新你的适配器或界面,以显示最新的搜索结果。

以下是一个示例代码,演示如何实现上述步骤:

代码语言:txt
复制
// 假设你有一个名为dataList的原始数据源数组
ArrayList<String> dataList = new ArrayList<>();
// 假设你有一个名为adapter的适配器,用于显示搜索结果
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);

// 设置SearchView的监听器
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        // 在用户提交搜索时触发
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        // 在用户输入搜索关键字时触发
        filterData(newText); // 调用过滤方法
        return true;
    }
});

// 过滤数据的方法
private void filterData(String keyword) {
    ArrayList<String> filteredList = new ArrayList<>();
    for (String item : dataList) {
        if (item.contains(keyword)) {
            filteredList.add(item);
        }
    }
    adapter.clear();
    adapter.addAll(filteredList);
    adapter.notifyDataSetChanged();
}

在这个示例中,我们使用了一个ArrayList作为数据源数组,并使用ArrayAdapter来显示搜索结果。在过滤数据的方法中,我们遍历原始数据源数组,将包含用户输入关键字的项添加到新的结果数组中,然后使用适配器更新界面以显示最新的搜索结果。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的品牌商,我无法给出具体的推荐。但是,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,你可以访问腾讯云官方网站或搜索腾讯云相关文档来了解更多信息。

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

相关·内容

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

搜索栏对于我们并不陌生,在许多app都能见到它,比如豌豆荚 image.png 在某些情况下,我们希望我们的自动补全信息可以不只是纯文本,还可以像豌豆荚这样,能显示相应的图片和其他数据信息,因此Android...:layout_height="@dimen/btn_height" android:text="返回" android:textColor="@color/color_white...EditText etInput; /** * 删除键 */ private ImageView ivDelete; /** * 返回按钮 */ private Button btnBack...当输入框的文本空”“变换到非空时,即有字符时,界面应显示自动补全框,隐藏热门搜索框。 5. 当输入框的文本非空变为空时,系统应隐藏自动补全框和热门搜索框。 6....android:id="@+id/main_lv_search_results" android:layout_width="match_parent" android:layout_height=

4.7K10

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

现在ActionBar广泛用做APP的顶部导航栏,它在布局上主要分为三部分:左边是返回区域,包括logo、返回箭头、左侧标题等等;右边是菜单区域,放的是溢出菜单OverflowMenu的各菜单项;中间是条件区域...logo,默认显示 setDisplayHomeAsUpEnabled : 是否在左侧返回区域显示返回箭头,默认不显示 setDisplayShowTitleEnabled : 是否在左侧返回区域显示左侧标题...定制视图的布局与普通布局一样,都在layout目录下,布局文件中获取并修改完成视图后,调用ActionBar的setCustomView方法就完成了定制。...另外,更换左侧返回区域的返回箭头图标,可通过ActionBar的setIcon来实现。但该方法在Android4.4.2之后才支持,之前版本的系统仍然不支持定制左侧返回图标。...="ifRoom" android:title="搜索" android:actionViewClass="android.widget.SearchView" />

8.7K20

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

简介 一款封装了 历史搜索记录功能 & 样式 的Android自定义搜索框 已在Github开源:地址:SearchView,欢迎 Star ! ? ---- 2....setCompoundDrawablesWithIntrinsicBounds()的区别:可设置图标大小 // 传入的Drawable对象必须已经setBounds(x,y,width,height),即必须设置过初始位置、宽和高等信息...// 返回按钮 <ImageView android:layout_width="38dp" android:layout_height=...); /** * 关注3 * 检查数据库中是否已经有该搜索记录 */ private boolean hasData(String tempName) { // 数据库中...具体使用 具体请看文章:Android开源库:这里有一个简单好用、含历史搜索记录的搜索框 完整Demo地址:Carson_Ho的Github地址:SearchView ? ---- 8.

2.8K10

Intent详解

总结为:Intent用于处理Android各组件之间的通信,工作有:     Intent需标明本次通信请求哪里来、到哪里去、怎么走。    ...接电话 ACTION_SEARCH android.intent.action.SEARCH 导航栏上SearchView的搜索动作               这个动作名称通过setAction方法来指定...当然,由于动作是模糊匹配,因此有时需要详细的路径,比如知道某人住在哪个小区,并无法直接找到他家,还得说明他住在该小区的哪一期、哪号楼、哪一层、哪一个单元。...        Intent有时只需要把请求数据发送到下一个页面就行,但有时还要处理下一个页面的应答数据(通常发生在下一个页面返回到上一个页面时)。...后一个页面在返回前一个页面时,打包应答数据并调用setResult方法返回信息

67830

停止在 JavaScript 中使用 Promise.all()

,并返回描述每个 promise 结果的对象数组。...每个数据源都是一个返回 Promise 的函数,模拟了外部数据源获取数据的过程。我们通过 setTimeout 来模拟异步操作。...在主函数中,我们创建一个包含三个数据源的数组 dataSources。然后,使用 Promise.allSettled(dataSources) 并行获取数据,并遍历结果数组 results。...每个任务都是一个返回 Promise 的函数,模拟了执行任务的过程。 在主函数中,我们创建一个包含三个任务的数组 tasks。...Promise.allSettled() 适用于处理多个独立的异步操作,并提供完整的结果信息和灵活的错误处理;而 Promise.all() 适用于按特定顺序执行任务,并在任何一个任务失败时快速终止并处理错误

9710

破解第一个Android程序

对大部分Android程序来说,错误提示信息是指引我们找到关键代码的明灯。错误提示代码附近通常就是程序的核心验证代码,我们需要通过阅读这些代码来理解软件的注册流程。...可以在Android Studio中通过菜单项“File”→“Project Structure...”进行设置,简单的方法是在buildTypes的release项下添加如下内容。...move-result v0 if-nez v0, :cond_0 checkSN() 方法返回Boolean类型的值。第1行代码将返回的结果保存到v0寄存器中。...,输出的信息如下。...《Android软件安全权威指南》平台搭建和语言基础开始,循序渐进地讲解了Android平台上的软件安全技术,提供了对Windows、Linux、macOS三个平台的支持,涉及与Android软件安全相关的环境搭建

3.2K20

Android开发笔记(四十)组件通讯工具Intent

Intent完成的工作主要有三部分: 1、Intent需标明本次通讯请求是哪里来,到哪里去,要怎么走; 2、发起方携带上本次通讯需要的数据内容,接收方则对收到的Intent数据进行解包; 3、如发起方要求判断接收方的处理结果...: 接电话 ACTION_SEARCH="android.intent.action.SEARCH" : 搜索,ActionBar上面SearchView的搜索动作 这个动作名称通过setAction...当然,由于动作是模糊匹配,因此有时需要详细的路径,比如说知道某人住在天通苑小区,但并不能直接找到他家,所以还得说明他住在天通苑的哪一期、哪号楼、哪一层、哪个单元。...CATEGORY_INFO="android.intent.category.INFO" : 在提供包信息时调用。...,打包应答数据,调用setResult方法返回信息,setResult的第一个参数表示应答代码,代码示例如下: Intent intent = new Intent(); Bundle bundle

65530

ES2020

操作符更适合安全进行链式操作的场景,因为: 语义明确:?.遇到属性/方法不存在就返回undefined,而不像&&一样返回左侧的值(几乎没什么用) 存在性判断准确:?....es\d+)\/es(\d+)/g) // 顺利得到 ["es2015/es6", "es2016/es7", "es2020/es11"] match()方法中,正则表达式所匹配到的多个结果会被打包成数组返回...= 'es2015/es6 es2016/es7 es2020/es11'.matchAll(/(es\d+)\/es(\d+)/g); // 转数组处理 Array.from(results).map...(r => `${r[1]} alias v${r[2]}`); // 或者迭代器中取出直接处理 // for (const matched of results) {} // 得到结果同上 注意,matchAll...()不像match()一样返回数组,而是返回一个迭代器,对大数据量的场景友好 for-in 遍历机制 JavaScript 中通过for-in遍历对象时 key 的顺序是不确定的,因为规范没有明确定义

49720

Android 中使用 dlib+opencv 实现动态人脸检测功能

具体实现原理如下: 采用双层 View,底层的 TextureView 用于预览,程序 TextureView 中获取预览帧数据,然后调用 dlib 库对帧数据进行处理,最后将检测结果绘制在顶层的 SurfaceView.../dlib/FaceDet" class JNI_VisionDetRet { public: JNI_VisionDetRet(JNIEnv *env) { // 查找VisionDetRet类信息...METHOD_NAME void JNIEXPORT DLIB_FACE_JNI_METHOD(jniNativeClassInit)(JNIEnv *env, jclass _this) {} // 生成需要返回的结果数组...; // 返回检测结果 results = mFaceDet.detect(bp[0]); return results; } protected void onPostExecute(List<VisionDetRet...results) { // 绘制检测到的人脸矩形框 mBoundingBoxView.setResults(results); mIsDetecting = false; } } 然后,分别在 onResume

3K10

map 方法优化数组遍历指南

map 方法的优势map 方法是 JavaScript 提供的一种内置数组方法,用于创建一个新数组,其结果是该数组中的每一个元素是调用一次提供的函数后的返回值。...通过直接返回新的对象,避免了手动管理索引和数组推入的繁琐。减少错误:不需要显式地处理索引,减少了数组越界等错误的风险。自动处理数组长度不一致的情况,使代码更加健壮。...forEachforEach 方法用于遍历数组并对每个元素执行指定的函数,但不返回新的数组:const numbers = [1, 2, 3, 4, 5];numbers.forEach(num =>...console.log(num * num)); // 1 4 9 16 25适用场景:需要对数组元素进行操作,但不需要返回新的数组。...=> { console.log(results); }) .catch(error => { console.error(error); });处理嵌套数组

6800
领券