Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有两个EditText的UI-当其中一个失去焦点时,我如何捕获任何已更改的文本?_Android_Android Edittext - Fatal编程技术网

Android 有两个EditText的UI-当其中一个失去焦点时,我如何捕获任何已更改的文本?

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

我的UI有两个编辑文本字段。当用户选择其中一个EditText,然后输入一些数据,然后单击第二个EditText时,第一个EditText中的信息将丢失,并恢复为字段中最初的信息

例如:

EditText 1=“你好”

EditText 2=“世界”

用户点击first EditText,将文本更改为“Hello”,然后按enter:Normal Behavior。文本已保存

用户点击第一个编辑文本,将文本更改为“Hello”,然后点击第二个编辑文本:错误行为。EditText 1恢复为“Hello”

我如何纠正这种行为?两个编辑文本使用相同的
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学徒,我指的是编辑文本。将很快编辑我的错误。