2012-08-16 72 views
2

嗨我的屏幕中有两个编辑文本框,我只在编辑文本获得焦点时启用横向支持。当用户按下软键盘上的完成按钮时,将其禁用。用户在第一个编辑文本中输入数值,然后按下一个按钮。然后在第二个编辑文本中输入数值,然后按“完成”按钮。我想要做的一件事就是需要强制失去焦点从第二edittext.i已尝试clearFocus()和button.requestFocus()但不helpfull.given下面是我的代码片段。如何强制从编辑文本中失去焦点?

@Override 
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_SEND 
      || actionId == EditorInfo.IME_ACTION_DONE 
      || actionId == EditorInfo.IME_ACTION_GO 
      || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 

    ((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    InputMethodManager imm = (InputMethodManager) context 
       .getSystemService(Context.INPUT_METHOD_SERVICE); 
    if (imm != null) 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 

    return true; 
    } 
    return false; 
} 
@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    if(hasFocus) 
    ((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
} 

点击“完成”按钮后,如果用户点击第二个编辑文本控件不来onFocusChange事件。请帮助我

回答

2

按照接受的答案This的问题。当您在OnEditorAction方法中完成处理时,只需将焦点设置为该虚设布局

0

如果我理解正确,那么您想在按下“完成”按钮时关闭键盘? 如果是这样,请尝试将此行添加到其中onClickListener

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);