gpt4 book ai didi

android - 果冻 bean 上TextView的requestFocus慢

转载 作者:IT老高 更新时间:2023-10-28 23:24:12 28 4
gpt4 key购买 nike

我正在开发一个应用程序,它有 4 个用于输入数据的文本字段,但在将焦点从一个转移到另一个时遇到了性能问题。当一个字段输入了一个字符时,我使用 addTextChangedListener 来监视文本并将焦点移动到下一个文本字段。这在 4.1.1 之前的 android 版本上运行良好,但由于在 4.1.1 上进行测试,当您在焦点出现在下一个字段中之前按下一个键时会出现明显的滞后。这意味着如果用户快速键入,按键可能会丢失。

我有一个使用以下代码的简单应用程序

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


one = (EditText)findViewById(R.id.editText1);
two = (EditText)findViewById(R.id.editText2);

one.addTextChangedListener(new TextWatcher() {


@Override
public void afterTextChanged(Editable s) {
two.requestFocus();

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}
});
}

这突出了这个问题。在基于 4.0.4 的设备上运行时一切正常,但在 4.1.1 上移动焦点需要一段时间。

我已经在 2 款不同的三星 Galaxy s3 上进行了测试,一款为 4.0.4,另一款为 4.1.1。

还有其他人看过吗?

非常感谢

保罗

最佳答案

我不知道该问题是否有解决方案...但我可能有一个“hack”,可以在问题存在时提供替代解决方案 :

  1. 将 EditText 放到屏幕之外。 (我通常用RelativeLayout将它设置在右边距的右边)。

  2. onTouchListener 设置为可见的 EditText(并将 EditText 设置为不可点击)。 onTouchListener 应该将焦点指向隐藏的 EditText。

  3. 在隐藏的 EditText 上设置一个 addTextChangedListener,它会为添加或删除的每个字符对可见的 EditText 进行适当的更改。

示例:

如果我有 4 个带有 ID 的 PIN 编辑文本:ABCD 以及id hidden 的EditText 离开屏幕:

每当我收到 hidden 上的第一个字符时,我都会写 A

每当我在 hidden 上收到第二个字符时,我都会写 B

每当我在 hidden 的第二个字符上收到删除消息时,我都会在 B 上删除。

...

我正在我的一个应用上做类似的事情,没有问题。

关于android - 果冻 bean 上TextView的requestFocus慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160352/

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