2015-04-01 76 views
0

我正在使用用户名和密码为2 EditText框的活动登录页面。 我试图显示Toast消息,当焦点从用户名更改为密码框时: - 如果在用户名框中输入的文本在其中有空白。 - 如果没有空白,则没有Toast显示。如何在EditText中改变焦点时显示Toast?

回答

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

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();     
    } 
    } 
}; 

这是出于片段完成。如果里面的活动,那么你可以用

<activityname>.this 

更换

getActivity() 

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

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 
     } 
    } 
});