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

如何知道EditText何时失去焦点?

罗昊明
2023-03-14

EditText失去焦点时,我需要捕捉,我搜索了其他问题,但没有找到答案。

我这样使用OnFocus usChangeListener

OnFocusChangeListener foco = new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        // TODO Auto-generated method stub

    }
};

但是,这对我不起作用。

共有3个答案

阙俊友
2023-03-14

Kotlin路

editText.setOnFocusChangeListener { _, hasFocus ->
    if (!hasFocus) {  }
}
竺展
2023-03-14

如果希望分解使用此接口,请让您的活动实现OnFocusChangeListener(),例如:

public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{

在您的OnCreate中,您可以添加一个侦听器,例如:

editTextResearch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);

然后android studio将提示您从界面添加方法,接受它。。。它将类似于:

@Override
public void onFocusChange(View v, boolean hasFocus) {
  // todo your code here...
}

当你有一个因式分解的代码时,你只需要这样做:

@Override
public void onFocusChange(View v, boolean hasFocus) {
  if (!hasFocus){
    doSomethingWith(editTextResearch.getText(),
      editTextMyWords.getText(),
      editTextPhone.getText());
  }
}

这就应该成功了!

洪鸿博
2023-03-14

实现setOnFocusChangeListener的onFocusChange,hasFocus有一个布尔参数。如果该值为false,则表示您失去了对另一个控件的关注。

 EditText txtEdit = (EditText) findViewById(R.id.edittxt);

 txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {          
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
               // code to execute when EditText loses focus
            }
        }
    });
 类似资料:
  • 在我的应用程序中,我需要能够捕捉到编辑文本(editText)是否失去了焦点,我已经在java中找到了如何做到这一点,但在kotlin中我还不能找到如何做到这一点。 我找到的Java答案是: 有人能帮我把这个转换成kotlin吗?

  • 我希望能够检测编辑文本何时没有被点击,这样我就可以用文本视图替换它。我试过了 但是祝酒词不会被调用。

  • 在我的活动中,我有一个editText字段。当用户点击它时,editText获得焦点并出现键盘。现在,当用户按下手机上的硬件后退按钮时,键盘会消失,但光标仍保留在Edittext中,即它仍然具有焦点。当按下后退按钮时,是否有可能使EditText失去焦点?我尝试使用以下代码,但它不起作用:

  • 因此,如果用户输入“1234”,他们将在EditText字段中看到“1234”。但当该字段失去焦点时,我希望它显示“*****” 因此,我实现了一个自定义TransformationMethod,它只会在EditText字段没有焦点时屏蔽输入的文本。 当我输入文本“12345”时,它会显示它应该“12345”,但当我单击不同的字段时,数字永远不会被掩盖。我想看 "*****" 但我仍然看到相同的“

  • 我正在一个活动的登录页面上工作,其中用户名和密码作为两个编辑文本框。当焦点从用户名更改为密码框时,我试图显示Toast消息:-如果在用户名框中输入的文本中有空格-如果没有空格,则不显示Toast。

  • 我已经阅读了讨论这个问题的其他问题,除了创建的第一个问题之外,它们都适用于我的布局。 目前,这是我的方法的顶部: ^这使得它至少键盘不会在启动时弹出,但仍然专注于。 这是我的的: 这是我提起我的活动时的样子: 问题是,对于某些手机,当像这样聚焦时,它们无法在其中写入。我希望它不对焦。 我所做的工作适用于接下来提出的布局,因为<code>编辑文本 请注意,它的布局是相同的。这是用户返回此屏幕后的屏幕