gpt4 book ai didi

android - 从启动 Activity 返回时如何保留 AutoCompleteTextView DropDown 状态

转载 作者:搜寻专家 更新时间:2023-11-01 08:23:11 26 4
gpt4 key购买 nike

目前,当我

  • 通过点击 AutoCompleteTextView 的下拉菜单启动一个新的 Activity
  • 关闭启动的Activity
  • AutoCompleteTextView 的下拉菜单是隐藏的。

我想保留 AutoCompleteTextView 的下拉状态,其中包括

  • 从启动的 Activity 返回时不应隐藏下拉菜单
  • 应保留下拉菜单的滚动位置。

我不确定为什么当我从启动的 Activity 返回时,AutoCompleteTextView 的下拉菜单会被隐藏。因此,我尝试了两件事

  1. 将启动的 ActivitywindowSoftInputModestateAlwaysHidden 更改为 stateUnchanged
  2. onActivityResult中,当启动的Activity关闭时,显式执行mSearchSrcTextView.showDropDown();

但是,我仍然面临这个问题。不会保留 AutoCompleteTextView 下拉列表的先前滚动位置。它被重置回列表顶部。

下面的屏幕截图可以更好地说明我面临的问题。


enter image description here

(当前 AutoCompleteTextView 的下拉列表滚动到末尾。我点击最后一项并启动一个新的Activity)


enter image description here

(新的 Activity 已启动。现在,我点击 BACK 软键两次,以关闭键盘,然后关闭 Activity )


enter image description here

(由于在 onActivityResult 中显式调用了 mSearchSrcTextView.showDropDown();,下拉列表再次显示。但是,它之前的滚动位置没有被保留. 显示列表的开头而不是列表的结尾)

我想知道,在关闭之前启动的 Activity 时,是否有任何方法可以保留 AutoCompleteTextView 的 DropDown 状态?

最佳答案

对于 AutoCompleteTextView,它有一个名为 dismissDropDown() 的方法。我相信从新推出的 Activity 回来时,会触发此功能。因此,我们通过扩展 AutoCompleteTextView 并覆盖它的 dismissDropDown() 来解决这个问题。

我们添加一个 bool 标志 temporaryIgnoreDismissDropDown,指示是否暂时忽略 dismissDropDown

public class MyAutoCompleteTextView extends AutoCompleteTextView {
private boolean temporaryIgnoreDismissDropDown = false;

.....

@Override
public void dismissDropDown() {
if (this.temporaryIgnoreDismissDropDown) {
this.temporaryIgnoreDismissDropDown = false;
return;
}

super.dismissDropDown();
}

public void setTemporaryIgnoreDismissDropDown(boolean flag) {
this.temporaryIgnoreDismissDropDown = flag;
}
}

在启动新 Activity 之前,我们将 dismissDropDown 设置为 true。从启动的 Activity 返回后,调用 dismissDropDown。 override 方法检查 temporaryIgnoreDismissDropDown 是否为 true,只需将其设置为 false 并且什么也不做。所以真正的 dismissDropDown 被跳过了。

// myAutoCompleteTextView is instance of MyAutoCompleteTextView
myAutoCompleteTextView.setTemporaryIgnoreDismissDropDown(true);

// launch new Activity
startActivity(....);

希望这对您有所帮助,祝您好运!

关于android - 从启动 Activity 返回时如何保留 AutoCompleteTextView DropDown 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48061380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com