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

按下back后SearchView为空的RecycleView列表

问题描述:按下back后SearchView为空的RecycleView列表

回答: 在Android开发中,当我们在一个Activity中使用了SearchView和RecyclerView,并且在SearchView中输入关键字进行搜索后,按下返回按钮返回到上一个界面时,再次进入该Activity时,SearchView的内容会被清空,同时RecyclerView的列表也会被清空。这是因为按下返回按钮会销毁当前Activity,重新创建时会重新初始化SearchView和RecyclerView。

为了解决这个问题,我们可以通过以下几种方式来保持SearchView和RecyclerView的状态:

  1. 使用SharedPreferences:在Activity的onPause()方法中,将SearchView中的内容保存到SharedPreferences中,同时将RecyclerView的列表数据也保存到SharedPreferences中。然后在onResume()方法中,从SharedPreferences中恢复SearchView的内容和RecyclerView的列表数据。
  2. 使用ViewModel:使用Android Jetpack中的ViewModel来保存SearchView的内容和RecyclerView的列表数据。ViewModel会在Activity被销毁和重新创建时保持数据的状态不变。在Activity中创建一个ViewModel对象,并将SearchView的内容和RecyclerView的列表数据保存在ViewModel中。然后在Activity重新创建时,从ViewModel中获取数据并恢复SearchView的内容和RecyclerView的列表数据。
  3. 使用Bundle:在Activity的onSaveInstanceState()方法中,将SearchView的内容和RecyclerView的列表数据保存到Bundle中。然后在onCreate()方法中,从Bundle中获取数据并恢复SearchView的内容和RecyclerView的列表数据。

以上是几种常见的解决方案,根据具体情况选择合适的方式来保持SearchView和RecyclerView的状态。在实际开发中,可以根据需求和项目的架构选择最适合的方法。

腾讯云相关产品推荐:

  • 数据存储:腾讯云对象存储(COS)是一种海量、安全、低成本、高可靠的云存储服务,适用于存储和处理任意类型的文件数据。详情请参考:腾讯云对象存储(COS)
  • 人工智能:腾讯云人工智能(AI)服务提供了图像识别、语音识别、自然语言处理等多种人工智能能力,帮助开发者快速构建智能化应用。详情请参考:腾讯云人工智能(AI)服务
  • 云原生:腾讯云容器服务(TKE)是一种高度可扩展的容器管理服务,支持容器化应用的部署、运行和管理。详情请参考:腾讯云容器服务(TKE)

以上是腾讯云的一些相关产品,供参考使用。

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

相关·内容

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

分析 根据上面这张图,简单分析一自定义搜索框结构与功能,有 1. 搜索界面大致由三部门组成,如图:输入框+(自动补全)提示框+结果列表。 2....比较简单,需要注意是EditText这个属性 android:imeOptions=”actionSearch” 就是把Enter键设置Search键,并把点击Enter键动作设为actionSearch...,这样既可在代码中监听何时search键 没什么说,bg属性可以直接看看源码。...当输入框文本从”“变换到非时,即有字符时,界面应显示自动补全框,隐藏热门搜索框。 5. 当输入框文本从非变为时,系统应隐藏自动补全框和热门搜索框。 6....需要监听是否search键(enter),时通知监听者执行search操作 结合以上6点和在上文分析过内容,就能很轻松地实现该view。

4.9K10

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

正好仔细讲解了SearchView和Toolbar。希望大家看看我哪里是不是讲错了。哈哈。 ? 1.先抛开搜索功能,我们看如何单纯实现下图标题栏界面: ?...Activity是哪个,然后返回时候就跳到那个父Activity中。...,覆盖了一层我们要SearchView,然后默认是隐藏,点击搜索图标按钮SearchView显示就可以了。...看布局代码,就知道在第一步中标题栏布局上面,覆盖了一层横向布局,用来显示SearchView和取消按钮,该界面默认是隐藏,只有当了搜索图标按钮,再让这个横向布局显示,盖在上面,(当然同时也可以让原来标题和搜索图标按钮隐藏...写上此句searchView初始展开,也就是是可以点击输入状态,如果不写,那么就需要点击下放大镜,才能展开出现输入框。

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

    ,jar包里面大量引用了工程中图片资源,所以我们要先把v7-appcompat导入一个库工程,然后app工程再引用这个库工程。...2、基于上一点,新控件可取到SearchAutoComplete对象,因此我们可给该对象注册自动完成字符串适配器,在用户输入文字时,界面会自动弹出符合搜索条件关键词列表; 3、setAppSearchData...Toolbar运行问题处理集锦 更换导航栏还是存在一些兼容问题,下面是博主发现几个情况及其解决办法: 1、溢出菜单菜单项已经设置android:showAsAction="ifRoom"...2、溢出菜单列表在菜单文字左侧显示图标的方法,使用ActionBar时正常,使用Toolbar时反而不会显示图标了。...对象时,发现取到SearchView

    1.9K30

    actionbar完全解析(一)

    新建一个项目并运行,效果如下图所示: ?...没错,如果我们只是简单地finish了一,ActionBar导航和Back功能是完全一样,但ActionBar导航设计初衷并不是这样,它和Back功能还是有一些区别的,举个例子吧。...好,这个时候如果我们Back键,应该会回到Conversation 2 details界面,再按一次Back键应该回到Conversation1 details界面,再按一次Back键才会回到Conversation...那么此时我们如何查看隐藏在overflow中Action按钮呢?其实非常简单,Menu键,隐藏内容就会从底部出来了,如下图所示: ?...,接着在这个方法内部通过返回反射方法将MenuBuildersetOptionalIconsVisible变量设置true就可以了。

    1.1K100

    Android ActionBar完全解析,使用官方推荐最佳导航栏(上)

    新建一个项目并运行,效果如下图所示: ?...没错,如果我们只是简单地finish了一,ActionBar导航和Back功能是完全一样,但ActionBar导航设计初衷并不是这样,它和Back功能还是有一些区别的,举个例子吧。...好,这个时候如果我们Back键,应该会回到Conversation 2 details界面,再按一次Back键应该回到Conversation1 details界面,再按一次Back键才会回到Conversation...那么此时我们如何查看隐藏在overflow中Action按钮呢?其实非常简单,Menu键,隐藏内容就会从底部出来了,如下图所示: ?...,接着在这个方法内部通过返回反射方法将MenuBuildersetOptionalIconsVisible变量设置true就可以了。

    3.3K101

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

    ,包括导航项Navigation(下拉列表与标签切换)、搜索框SearchView,以及可自定义定制视图CustomView。...下面列一几个注意点: 1、菜单项布局定义中,要把showAsAction属性设置好。...2、Android手机一般都有物理按键,物理按键菜单键,有的手机在顶部显示选项菜单而不是在右上角显示,有的手机干脆不显示任何菜单(常见于Android4.2.2以下系统)。...: 表示采用下拉列表模式; 2、NAVIGATION_MODE_TABS: 表示采用标签切换模式; 下拉列表模式使用方法类似Spinner,也要设置列表文本ArrayAdapter与监听器。...定制视图布局与普通布局一样,都在layout目录下,从布局文件中获取并修改完成视图,调用ActionBarsetCustomView方法就完成了定制。

    8.9K20

    Android 自定义弹窗 附带搜索过滤功能

    需求是因为在下拉列表中选择一个项作为数据显示在界面上,但是所有的选项很多,翻找很麻烦所有需要用个搜索框解决一这个问题,下面是Demo效果,可以先看一。...---- 问题描述 开发前有个问题就是想用现成已有的东西放进去直接就能用了,也没有做自定义列表东西,后面发现ListView过滤功能不是很友好,它过滤方式智能对数据第一个字符进行过滤,如果是中间出现字符它就会过滤不出来...,这样并不能完全起到过滤作用,下面看一解决方式。...---- 解决方案: 1、先创建要自定义内容,弹窗自定义内容dialog_searchview.xml、列表自定义内容fragment_recomend_item.xml(列表自定义也可以放其他东西,...FilterResults(); List list ; if (TextUtils.isEmpty(charSequence)){//当过滤关键字时候

    25620

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

    Material Design基本概念 Material Design是Google设计一套视觉语言,将优先经典设计原理与科技创新相结合,开发者提供一套完成视觉和交互设计规范。...itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false); 写法一般情况是没有问题...写法二直接Crash,因为ItemView布局已经有一个Parent了(Inflate时候把ItemView添加到Recycleview了),不能再添加一个Parent(Recycleview再次添加...(onBindViewHolder() 方法中位置参数 position 不是实时更新,例如在我们删除元素,item position 并没有改变。)...reverse; } FloatingActionButton动画 方案1:列表滑动时候FloatingActionButton隐藏与显示,通过自定义OnScrollListener实现 public

    3.3K30

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

    基本用法 我就不详细描述了 这里主要说一些我遇到问题: 如下: 一、点击listView 让文字自动补全到searchView上: 首先需要设置adapter 然后这只listView点击事件:...} return true; } 下面给出效果图完整实现方法: public class MainActivity extends Activity { private SearchView...searchView; private ListView listView; //定义自动完成列表 private final String[] mStrings = {"我爱Java"...//设置SearchView自动缩小图标 searchView.setIconifiedByDefault(false);//设为true则搜索栏 缩小成俄日一个图标点击展开 //设置该.../点击搜索按钮时触发 @Override public boolean onQueryTextSubmit(String query) { //此处添加查询开始具体时间和方法

    2.9K10

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

    " app:showAsAction="always"/> 其中,actionViewClass中指定view类型SearchView 2、布局文件中添加ToolBar...(false);//设置searchView处于展开状态 searchView.onActionViewExpanded();// 当展开无输入内容时候,没有关闭图标 searchView.setIconifiedByDefault...到这里,大家就对SearchView有个初步认识了,期待大家回复,一起深入研究! 顺便简单说一FlexboxLayout 相信大家都写过流式布局,典型用处就是搜索界面的标签和商品界面的筛选功能。...,有五种取值,默认情况大家看到控件是左对齐(flex_start),另外还有主轴居中对齐(center) 4、子控件属性介绍 ·a app:layout_order="2" 这个表示子元素优先级...OK,以上就是SearchView及FlexboxLayout简单介绍,有错误地方或不足地方,希望大家能够指出。

    1.2K10

    6、backbone中view实例

    2、 el属性 这个属性用来引用DOM中一些元素,每一个Backboneview都会有这么个属性, 如果没有显示声明,Backbone会默认构造一个,表示一个div元素 .. code:: javascript...'click input[type=button]' : 'doSearch' //定义类型buttoninput标签点击事件,触发函数doSearch },...= new SearchView({el: $("#search_container")}); 自己运行,是不是很简答,比写$("input[type=button]").bind('click',...'click input[type=button]' : 'doSearch' //定义类型buttoninput标签点击事件,触发函数doSearch },...别激动,再来稍微扩展一 对于实际应用来说,页面数据变化需要同步到服务器端,最理想方法,只是回传变化数据就ok,然后修改页面上对应数据,而不是刷新页面。

    63320

    Android AppBar

    AppBar官方文档摘记 2016-6-12 本文摘自Android官方文档,方便自己及其他开发者朋友阅读。...Adding the App Bar App Bar是谷歌推荐应用带来统一外观和一致导航UI设计元素,已有的Action Bar就是早先SDK中引入实现。...Action View可以指定显示在App Bar中View,处理View展开和收起等逻辑。Action Provider更灵活些,允许自定义UI布局,处理所有点击事件,弹出菜单列表等。...可以结合android.support.v7.widget.SearchView和android.support.v7.widget.ShareActionProvider源码来了解两者不同。...总结 文章简单把Google官方Android开发文档中介绍App Bar部分进行了摘取,整理markdown文章。 以上4节对ToolBar使用进行了入门级介绍。

    95360
    领券