2012-08-16 101 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);