Android 有两个EditText的UI-当其中一个失去焦点时,我如何捕获任何已更改的文本?
我的UI有两个编辑文本字段。当用户选择其中一个EditText,然后输入一些数据,然后单击第二个EditText时,第一个EditText中的信息将丢失,并恢复为字段中最初的信息 例如: EditText 1=“你好” EditText 2=“世界” 用户点击first EditText,将文本更改为“Hello”,然后按enter:Normal Behavior。文本已保存 用户点击第一个编辑文本,将文本更改为“Hello”,然后点击第二个编辑文本:错误行为。EditText 1恢复为“Hello” 我如何纠正这种行为?两个编辑文本使用相同的Android 有两个EditText的UI-当其中一个失去焦点时,我如何捕获任何已更改的文本?,android,android-edittext,Android,Android Edittext,我的UI有两个编辑文本字段。当用户选择其中一个EditText,然后输入一些数据,然后单击第二个EditText时,第一个EditText中的信息将丢失,并恢复为字段中最初的信息 例如: EditText 1=“你好” EditText 2=“世界” 用户点击first EditText,将文本更改为“Hello”,然后按enter:Normal Behavior。文本已保存 用户点击第一个编辑文本,将文本更改为“Hello”,然后点击第二个编辑文本:错误行为。EditText 1恢复为“Hel
OnFocusChangeListener
@Override
public void onFocusChange(View v, boolean hasFocus) {
String s = ((EditText) v).getText().toString().trim();
s = s.replaceAll(",", ".");
if (hasFocus) {
System.out.println(s);
//stuff
} else {
System.out.println(s);
//other stuff
}
我发现我可以得到
else
块中丢失的文本。我可以用它来设置编辑文本的文本。但是,我遇到了一个新问题-如果我添加了一个radiobutton,当用户从更改编辑文本转到单击radiobutton时,我不会在else
块中获取丢失的文本。相反,我看到的是这个else
块中的原始文本。最简单的解决方案是使用两个独立的onfocuschangelister
类。这是一个使用匿名内部类的好情况。在edittext失去焦点时对执行操作解决了我的第一个问题
这个问题的答案解决了我的第二个问题。“因此onFocusChange方法将只提供当前所选edittext的详细信息。”这是不正确的
onFocusChange()
将为离开一个文本视图的焦点调用一次,然后在进入下一个文本视图时再次调用。请提供一些代码,说明您如何尝试使用OnFocusChangeListener
“两个按钮使用相同的OnFocusChangeListener
…”什么按钮?@code学徒我将在稍后添加代码。你是对的-我只是在处理有焦点的编辑文本。然而,这个问题还没有完全解决。@Code学徒,我指的是编辑文本。将很快编辑我的错误。