当前位置: 首页 > 知识库问答 >
问题:

只有一个TextWatcher的一些EditText

钱锐
2023-03-14

我正在尝试使用TextWatcher界面,以检测哪个EditText被更改了。我有一个使用10个EditTexts的活动,为每个文本使用10个TextWatchers看起来很奇怪。

有没有办法只使用一个TextWatcher,并在函数afterTextChanged中的可编辑项上使用switch语句?

共有2个答案

宋智明
2023-03-14

我以前从未尝试过这种方法,但如果检查编辑文本是否处于焦点,它应该会起作用。有几种方法可以做到这一点,最简单的方法是检查<code>TextWatcher

if(mEdit1.hasFocus()) {
  ...
} else if(mEdit2.hasFocus()) {
  ...
} else if(mEdit3.hasFocus()) {
  ...
}

另一种方法是在根视图上使用 OnGlobalFocusChangeListener,并设置一个变量,指示 EditText 当前具有焦点。它仍然需要大量的if语句来检查哪个EditText具有焦点,但可能是一个更易于重用的解决方案。

周麒
2023-03-14

我要做的是创建一个扩展<code>EditText。然后,您可以在XML中实现这些编辑文本,或者在Java中使用<code>TextWatcher。

不知道这对你是否有用,但你可以试一试。

 类似资料:
  • 问题内容: 我希望在整个应用程序生命周期中只有一个类的5个实例。我该如何实现?如果可能,请提供示例代码。 问题答案: 由于Singleton应该由枚举组成(请参见“有效Java”): 格蕾兹·加德

  • 问题内容: 我不断收到错误: “路由器”可能只有一个子元素 使用react-router时。 我似乎无法弄清楚为什么它不起作用,因为它与示例中显示的代码完全一样:快速入门 这是我的代码: 感谢您的帮助 问题答案: 您必须将您的换行到(或)中。 应该 jsfiddle / webpackbin

  • < code >类 这是一个函数 < code>void f(类 是否可以只传递< code>SomeObject.class而不是编译时错误?

  • 每当“q”被写为我附加TextWatcher的edittext的最后一个字符时,这个“q”就会被替换为“a”。我使用: 但是,当我测试代码时,当我输入“q”时,什么也没发生。一些帮助?非常感谢。

  • 我有一个java应用程序,它在运行时会产生另一个JVM。然而,我想使用jpack打包我的应用程序,它运行得很好。但是在运行时,当我的应用程序尝试使用调用下一个JVM时 我必须知道,应用程序是使用定制的JVM启动的,并且没有像“java”这样的命令。所以我得到的错误是这个java。无法执行getAbsolutePath()。 如果没有java可执行文件,我的应用程序如何在单独的进程中运行另一个jar

  • 请不要使用“if”语句,除非你在解释为什么没有“if”语句是不可能的。