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

按back箭头按钮从DetailFragment back to ThumbnailFragment后,显示的下拉菜单的AutoCompleteTextView选项消失

当您从DetailFragment返回到ThumbnailFragment后,发现下拉菜单中的AutoCompleteTextView选项消失,这通常是由于视图状态没有正确恢复导致的。以下是一些可能的原因和解决方案:

基础概念

AutoCompleteTextView是一个可以自动完成用户输入的文本视图。它会根据用户输入的内容显示一个下拉菜单,其中包含匹配的建议项。

可能的原因

  1. 视图状态未保存:当Fragment被销毁并重新创建时,如果没有正确地保存和恢复视图状态,AutoCompleteTextView的状态可能会丢失。
  2. 数据源未重新绑定:如果AutoCompleteTextView的数据源在Fragment恢复时没有重新设置,那么下拉菜单将不会显示任何选项。
  3. 生命周期管理问题:Fragment的生命周期方法可能没有正确地处理AutoCompleteTextView的状态。

解决方案

以下是一些步骤和代码示例,帮助您解决这个问题:

1. 保存和恢复视图状态

确保在onSaveInstanceState中保存必要的状态,并在onViewCreated中恢复这些状态。

代码语言:txt
复制
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
    super.onSaveInstanceState(outState);
    // 保存AutoCompleteTextView的状态
    outState.putString("autoCompleteText", autoCompleteTextView.getText().toString());
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    if (savedInstanceState != null) {
        // 恢复AutoCompleteTextView的状态
        autoCompleteTextView.setText(savedInstanceState.getString("autoCompleteText"));
    }
    // 设置数据源
    setupAutoCompleteTextView();
}

2. 重新绑定数据源

确保每次Fragment可见时都重新绑定AutoCompleteTextView的数据源。

代码语言:txt
复制
private void setupAutoCompleteTextView() {
    // 假设您有一个数据源列表
    List<String> suggestions = getSuggestions();
    ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(),
            android.R.layout.simple_dropdown_item_1line, suggestions);
    autoCompleteTextView.setAdapter(adapter);
}

3. 使用ViewModel管理数据

使用ViewModel来管理AutoCompleteTextView的数据源,这样可以确保数据在配置更改(如屏幕旋转)时仍然存在。

代码语言:txt
复制
public class ThumbnailViewModel extends ViewModel {
    private final MutableLiveData<List<String>> suggestions = new MutableLiveData<>();

    public LiveData<List<String>> getSuggestions() {
        return suggestions;
    }

    public void loadSuggestions() {
        // 加载建议项
        List<String> suggestionList = fetchSuggestions();
        suggestions.setValue(suggestionList);
    }

    private List<String> fetchSuggestions() {
        // 实现获取建议项的逻辑
        return new ArrayList<>();
    }
}

在Fragment中使用ViewModel:

代码语言:txt
复制
public class ThumbnailFragment extends Fragment {
    private ThumbnailViewModel viewModel;
    private AutoCompleteTextView autoCompleteTextView;

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        autoCompleteTextView = view.findViewById(R.id.autoCompleteTextView);
        viewModel = new ViewModelProvider(this).get(ThumbnailViewModel.class);

        viewModel.getSuggestions().observe(getViewLifecycleOwner(), suggestions -> {
            ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(),
                    android.R.layout.simple_dropdown_item_1line, suggestions);
            autoCompleteTextView.setAdapter(adapter);
        });

        viewModel.loadSuggestions();
    }
}

应用场景

这种问题常见于需要保持用户输入状态的应用,如搜索功能、表单填写等。通过上述方法,可以确保用户在切换Fragment后仍然能看到之前的输入和相关的自动完成建议。

希望这些信息能帮助您解决问题。如果还有其他疑问,请随时提问。

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

相关·内容

Textmate使用手册「建议收藏」Textmate使用手册

新建文件 cmd + W 关闭标签 cmd + X 剪切 cmd + C 复制 cmd + V 粘帖 cmd + M 最小法 cmd + F2 标记 cmd + shift + z 返回后一个内容...cmd + option + [ 格式化代码 cmd + shift + T 当前文件中所有方法的 cmd + shift + W 关闭项目 cmd + option + L 显示行号 cmd...向上移动下拉菜单 ctrl + 下箭头 向下移动下拉菜单 ctrl + cmd + 上箭头 向上移动整行 ctrl + cmd + 下箭头 向下移动整行 ctrl + shift + k 删除一行代码...ctrl + shift + > (erb模板) 一键,连续按会出现多种效果 ctrl + option + cmd + V 从历史中选择内容粘帖 option|ctrl + -> 光标向右移动一个单词...它会自动补全end esc 以该文件中已经出现过的词做自动补全,可以按多次esc切换单词 view: F1 Fold current block cmd+t open file in a new

2K20
  • ntsysv(8) command

    ntsysv 提供了一个基于文本界面的菜单操作方式,集中管理系统不同的运行等级下的系统服务启动状态。也可以通过 chkconfig 进行配置。...2.命令格式 ntsysv [--back] [--level LEVELS] 3.选项说明 --back 在互动式界面里,显示 Back 按钮,而非 Cancel 按钮。...ntsysv --level 35 (2)在互动式界面里,显示 Back 按钮,而非 Cancel 按钮。 ntsysv --back (3)编辑运行级别需要启动的服务。...ntsysv 使用上下箭头来查看列表。使用空格键来选择或取消选择服务。要在服务列表和"OK"、"Cancel"按钮中切换,可以使用 Tab 键。* 表明某服务被设为启动。...按 F1键会弹出每项服务的简短描述。 参考文献 ntsysv(8) - Linux man page - Die.net

    5700

    Android界面组件基本用法

    为ImageButton指定android:text属性没用,不会显示文字 可以指定android:background为按钮增加背景图片,但这图片是固定的 可以指定android:src为图片按钮增加图片属性...:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单后,组件会按用户选择自动填写该文本框 使用该组件很简单,只要为它设置一个Adapter,该Adapter封装了...(TabHost) TabHost仅仅只是一个简单的容器,它提供如下方法 newTabSpec(String tag) 创建选项卡 addTab(TabHost.TabSpec tabSpec) 添加选项卡...通过TabHost对象的方法来创建选项卡、添加选项卡 选项卡主要由TabHost、TabWidget、FrameLayout3个组件组成,三者缺一不可,想象一下选项卡的特点,多个卡重叠在一起,所以用FrameLayout...让Activity继承ListActivity(继承了ListActivity的类无需调用setContentView()来显示页面,可以直接设置适配器) 一旦获得ListView后,就要创建显示的列表项了

    1.7K20

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

    Activity是哪个,然后按返回的时候就跳到那个父Activity中。...,覆盖了一层我们要的SearchView,然后默认是隐藏的,点击搜索图标按钮后让SearchView显示就可以了。...看布局代码,就知道在第一步中的标题栏的布局的上面,覆盖了一层横向布局,用来显示SearchView和取消按钮,该界面默认是隐藏的,只有当按了搜索图标按钮,再让这个横向布局显示,盖在上面,(当然同时也可以让原来的标题和搜索图标按钮隐藏...中的搜索框(三)—— SearchView 我们看到,在GIF图中,当我点击了搜索图标按钮的时候,SearchView 的Visible设为显示状态,同时键盘出现,然后当我点击取消按钮的时候,SearchView...的Visible设为隐藏状态,同时键盘消失,SearView的显示和隐藏这个大家都只要,只要调用SearchView.setVisibility方法即可。

    1.4K10

    52.HarmonyOS NEXT 登录模块开发教程(六):UI设计与用户体验优化

    } else { OtherWaysToLogin()// 其他登录方式 .transition(this.effect) // 此处涉及到组件的显示和消失...,所以使用transition属性设置出现/消失转场 } Image($r('app.media.arrow_back'))// 通过Stack组件,两个页面只实现一个back...3.2 视觉优化3.2.1 色彩运用在登录模块中,我们使用了一套协调的色彩方案,主要包括:// 按钮颜色.backgroundColor(this.buttonColor) // 动态变化的按钮颜色,根据状态显示蓝色或灰色...TransitionEffect.opacity(EFFECT_OPACITY))// 应用转场效果OtherWaysToLogin() .transition(this.effect) // 此处涉及到组件的显示和消失...:及时反馈:操作开始后立即显示加载状态视觉区分:加载状态应与正常状态有明显区别禁用重复:加载过程中禁用相关操作,防止重复提交超时处理:设置合理的超时时间,避免无限等待4.4 无障碍设计为了让更多用户能够使用登录功能

    9600

    “终于懂了“系列:Jetpack AAC完整解析(三)ViewModel 完全掌握!

    然后通过ViewModelProvider的get方法 获取ViewModel实例,然后就是 观察ViewModel中的LiveData。 运行后,点击按钮 会弹出进度条,2s后展示用户信息。...假设有一个ListFragment,用户从列表中选择一项,会有另一个DetailFragment显示选定项的详情内容。在之前 你可能会定义接口或者使用EventBus来实现数据的传递共享。...就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。...这是显而易见的,系统不知道你按下HOME后要运行多少其他的程序,自然也不知道activity A是否会被销毁,故系统会调用onSaveInstanceState,让用户有机会保存某些非永久性的数据。...以下几种情况的分析都遵循该原则 。 2、长按HOME键,选择运行其他的程序时。 3、按下电源按键(关闭屏幕显示)时。 4、从activity A中启动一个新的activity时。

    1.8K10

    阅读资料新姿势:如何正确打印网页内容为PDF文件

    去掉遮挡 打印预览的时候如果发现每一页的最上方都会有一横杠遮挡住了我们要看的内容,怎么办,当然是去掉它 返回当前的网页,按下F12或者Ctrl+Shift+I(windows,mac将Ctrl换位cmd...即可)打开调试器: 通过箭头选择(上方发蓝色的箭头)要去除的部分,然后选中最右方对应的html文本,点击键盘上Back键删除即可。...删除后,遮挡物就消失了。...(具体操作不会的可以看这里 https://oldpan.me/archives/one-minute-modify-content) 要打的页面太多怎么办 当网站内容过多的时候,我们点击打印按钮,很有可能出现...: 这样的原因是因为打印的时候会自动调整当前网页中的各种内容格式放到一起,如果东西太多就会加载不过来,这时我们需要删减一些东西 通过调整打印页码删除内容中不需要的部分,比如评论部分 删掉网页内容中不需要的装饰

    65140

    纯血鸿蒙APP实战开发——全屏登录页面

    全屏登录页面:在主页面点击跳转到全屏登录页后,显示全屏模态页面,全屏模态页面从下方滑出并覆盖整个屏幕,模态页面内容自定义,此处分为默认一键登录方式和其他登录方式。...效果图预览使用说明点击主页面按钮"点击跳转到全屏登录页",显示全屏模态页面。不选中"阅读并同意服务协议及个人信息处理规则",点击一键登录,提示"请先阅读并同意协议";选中则提示"登录成功"。...bindContentCover(this.isPresent, this.loginBuilder) .onClick(() => { this.isPresent = true; })模态页面显示后...Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......点击其他登录方式,切换过程涉及到组件的显示和消失...,使用 transition 属性设置出现或消失转场。

    10420

    跟我学Android之五 常规组件

    2” /> 示例: 从一组RadioButton列表中选一项最喜欢的球类运动,在选择后将结果显示在TextView中。 ​.../> 示例: 在屏幕上添加3个爱好的复选框和1个按钮;在选中某种爱好时,以日志形式输出信息;在点击提交按钮时,显示所有选中的爱好项。 ​...setChecked()可以用于设置按钮的状态 getChecked()用于提取按钮的状态 ​ImageView是一个用于显示图片的视图​ 可以显示来自资源获取其他内容提供者的图片...,是一种类似于Web中AJAX技术下的自动补全功能,组件类:ndroid.widget.AutoCompleteTextView ​自动完成文本框的使用场合​ 候选内容很多,不适合采用下拉框进行选择...1.为自动提示的下拉选择项提供显示布局 2.为下拉框提供内容数据 3.使用自动完成文本框 ​.自动完成文本框的常用属性​ android:completionHint 定义下拉菜单的提示信息 android

    8110

    iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究

    侧滑返回手势是从iOS7开始增加的一个返回操作,经历了两年时间估计iPhone用户大部分都已经忽略了屏幕左上角那个碍眼的back按钮了。...导航栏左上角的back按钮是附着在UINavigationController的UINavigationBar里自带的一个返回按钮,导航栏自带的back按钮的图层结构如下图所示。...原生的导航条上的返回(back)按钮,一般是显示一个返回箭头+上一页面的标题(或者是 返回箭头+Back),如下图右边所示。 ?...他们都属于UINavigationItem的组成部分,都显示在navigationBar上,都属于UIBarButtonItem类,所以我给他们取名为导航条上的按钮三兄弟,哈哈哈。。。   ...,不会隐藏最左边的返回箭头backIndicatorImage,而leftBarButtonItem的自定义则会使最左边的返回箭头消失backIndicatorImage。

    6.9K60

    Edge2AI之从边缘摄取数据

    在属性选项卡上,设置如下所示的属性以运行我们的 Python 模拟脚本。...单击心跳记录上的信息图标以查看心跳的详细信息。 选择流设计器选项卡 ( )。要构建数据流,请从表中选择所需的类 ( iot-1),然后单击OPEN。或者,您可以双击所需的类。...要终止NiFI的Input Port的数据,现在让我们在画布上添加一个Funnel...... …并建立从输入端口到它的连接。要建立连接,请将鼠标悬停在输入端口上,直到箭头符号显示在中心。...或者,单击输入端口将其选中,然后按操作面板上的开始(“play”)按钮: 您将需要Input Port的 ID来完成ConsumeMQTT处理器与 RPG (NiFi) 的连接。...检查消息的内容,就像我们之前所做的那样,确认有问题的读数已经消失。 验证数据后停止模拟器。

    1.5K10

    提高工作效率的 windows办公技巧汇总(一)

    设置步骤:    步骤1:选取销售员一列需要设置下拉菜单的单元格区域(这一步不能少),打开数据有效性窗口(excel2007和2010版本 数据选项卡 - 数据有效性 - 数据有效性),在窗口中的“设置...”选项卡里选“序列”。...步骤2:引用单元格的内容法。如果销售员在单元格B4:B8区域里,在“来源”后输入或点框最后的折叠按钮选这个区域。如下图所示。    进行如上设置后,我们就可以在销售员一列看到下拉菜单了。...然后选择特许格式的小箭头下拉菜单,选择段落标记,如图所示: 这里是要把多余的空行替换掉,意思就是有重复的空行,替换的设置是:^p^p,替换为^p,如图所示: 然后点击全部替换就可以了,中间的空行都没有了...6、WIN10新版CMD半透明显示   除此之外,新版CMD还加入了一项面板透明度功能。 一个最明显好处,就是你可以边操作边看到底下的提示了。

    80910

    用 testdisk 恢复 Linux 上已删除的文件

    在你可以写入的选定目录下开始: $ cd /home/recovery $ testdisk testdisk 提供的第一页信息描述了该工具并显示了一些选项。...] Append information to log file [ No Log ] Don’t record anything 左边的 > 以及你看到的反转的字体和背景颜色指出了你按下回车键后将使用的选项...下一步是选择被删除文件所存储的磁盘分区(如果没有高亮显示的话)。根据需要使用上下箭头移动到它。然后点两次右箭头,当 “Proceed” 高亮显示时按回车键。...接下来,我们按箭头指向具体的主目录。...注意: 对于文件恢复过程中的很多步骤,你可以使用退出(按 q 或“[ Quit ]”)来返回上一步。如果你愿意,可以选择退出选项一直回到该过程中的第一步,也可以选择按下 ^c 立即退出。

    6.7K20

    Material Design — 按钮( Buttons)

    ---- 下拉按钮(Dropdown buttons) 移动端下拉按钮 下拉按钮 下拉按钮可在多个选项中进行选择。 该按钮显示当前状态和向下箭头。...例如,可用状态可以显示为文字,颜色或icon的列表。 当用户与按钮交互时,Menus会覆盖按钮并显示可能的状态。 按下某个状态会取消Menus并更新按钮以显示此新状态。...在下拉菜单中滚动的方式与Menus滚动的方式相同。 ? ? 一般的下拉按钮 溢出下拉菜单按钮 这种类型的下拉菜单默认显示箭头或者菜单按钮。点击按钮后会弹出菜单。...点击菜单中的任意一个选项将会引导到对应的设置页面。 分段式下拉菜单按钮 分段式下拉菜单按钮有两个区域: 当前状态和下拉箭头。点击当前状态会触发状态相应的动作。...点击下拉箭头则会弹出所有状态菜单; 点击任意一个状态会改变当前的状态。 可编辑分段式下拉菜单按钮 可编辑分段式下拉菜单按钮的当前状态位置是可编辑的(例如用来选择文字大小的下拉菜单)。

    3.9K160

    Cocoa编程中视图控制器与视图类详解

    导航控制器自动构建并处理Back按钮; 3. 导航控制器提供简单的菜单栏可帮助用户进行自定义控件。4....推入时,新的视图控制器从右方滑入屏幕(假定animated:YES)。向左指的Back后退按钮出现,可返回到上一步,且Back按钮用的是上一个视图控制器的标题。 2....作为弹出回上一级视图控制器的Back按钮是自动产生并处理的,无需用户干预。 3. 可使用popViewControllerAnimated:BOOL弹出当前视图控制器并向左显示前一个视图。 4....)和栏标题(title)、用于显示标题的视图(titleView),以及用于从当前视图向后导航的Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。...接着会调用视图的viewLoad->viewWillAppear->viewDidAppear. 6. 控制器视图消失过程    消失过程比较简单,不作说明。 7.

    5.1K50

    Office 2007 实用技巧集锦

    让Excel按笔划或音序排序 众所周知,Excel可以按照数字以及字母的顺序进行排序,点击【数据】选项卡中的【排序】按钮,在弹出对话框的【选项】按钮中还可以设置让Excel按照音序或者笔划顺序排序。...对于运算出错的单元格,我们可以选择【公式】选项卡中的【追踪引用单元格】和【追踪从属单元格】来很好的追踪运算过程。Excel会以箭头的形式显示数据的来龙去脉,帮助您理清数据之间的关联。...如果希望取消屏幕上面的箭头显示,只需要选择【公式】选项卡中的【移去箭头】即可。...当您需要打开两个或多个日历来查看和安排日程的时候,每个日历的名称旁边都会有一个箭头形状的按钮,点击这个按钮,日历就可以以一种重叠的视图显示出来。...首先按照常规的方式撰写邮件,把调查的内容如实写在邮件的正文中,接下来在【选项】选项卡中找到【使用投票按钮】,通过下拉菜单找到所需的选项,或者通过自定义进行按钮的设定。

    5.4K10

    Office 2007 实用技巧集锦

    让Excel按笔划或音序排序 众所周知,Excel可以按照数字以及字母的顺序进行排序,点击【数据】选项卡中的【排序】按钮,在弹出对话框的【选项】按钮中还可以设置让Excel按照音序或者笔划顺序排序。...对于运算出错的单元格,我们可以选择【公式】选项卡中的【追踪引用单元格】和【追踪从属单元格】来很好的追踪运算过程。Excel会以箭头的形式显示数据的来龙去脉,帮助您理清数据之间的关联。...如果希望取消屏幕上面的箭头显示,只需要选择【公式】选项卡中的【移去箭头】即可。...当您需要打开两个或多个日历来查看和安排日程的时候,每个日历的名称旁边都会有一个箭头形状的按钮,点击这个按钮,日历就可以以一种重叠的视图显示出来。...首先按照常规的方式撰写邮件,把调查的内容如实写在邮件的正文中,接下来在【选项】选项卡中找到【使用投票按钮】,通过下拉菜单找到所需的选项,或者通过自定义进行按钮的设定。

    5.1K10
    领券