如何在EditText中更改焦点时显示Toast?

时间:2015-04-01 14:02:00

标签: android android-edittext

我正在进行活动的登录页面,其中我有用户名和密码作为2个EditText框。 当焦点从用户名更改为密码框时,我正在尝试显示Toast消息: - 如果在用户名框中输入的文本中包含空格。 - 如果没有空格,则没有Toast显示。

3 个答案:

答案 0 :(得分:0)

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

 txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {          

        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
               if (txtEdit.getText().Contains(" ")) {
                 Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
            }
        }
    });

参考:https://stackoverflow.com/a/10627231/2111834

答案 1 :(得分:0)

您可以使用View.OnFocusChangeListener。

代码示例:

et_uname.setOnFocusChangeListener(new View.OnFocusChangeListener(){
  @Override
  public void onFocusChange(View v, boolean hasFocus) {
     if (hasFocus == false && et_uname.getText().toString() != null && et_uname.getText().toString().contains(" ")){
        Toast.makeText(getActivity(), "Alert", Toast.LENGTH_LONG).show();                   
    }
  }
};

这是针对片段完成的。如果在Activity内,那么你可以替换

getActivity() 

<activityname>.this

这里hasFocus = true表示et_uname目前有焦点,hasFocus = false表示没有焦点。由于您需要在焦点丢失时提醒用户,因此必须为hasFOcus == false添加条件。

答案 2 :(得分:0)

您应该为您的编辑实施 OnFocusChangeListener ,请参阅以下代码:

 EditText myEdit = (EditText) findViewById(R.id.edit1);

 myEdit .setOnFocusChangeListener(new OnFocusChangeListener() {          

    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
           // Do the check for white spaces and display the Toast
        }
    }
});