2015-04-27 96 views
0

我想在按下KEYCODE_DEL按钮时在两个EditText视图之间切换。Android切换焦点使键盘消失

我的代码起作用了,它确实重点关注了以前的EditText,但是当它这样做时,键盘消失,并且光标位于该EditText中的实际文本之前。

为了使它更生动,当焦点交换机,EditText看起来是这样的:

|23其中|是光标位置,键盘被隐藏。

这里是我的代码:

if(event.getKeyCode() == KeyEvent.KEYCODE_DEL){ 
     super.dispatchKeyEvent(event); 
     focusPreviousET(); 
     return true; 
    } 
else{ 
    super.dispatchKeyEvent(event); 
    check(); 
    return true; 
} 

private void focusPreviousET() { 

    String sId = getId(getCurrentFocus()); 

    Identification id = new Identification(sId); 

    etX = getETFromResource(id); 

    if(isEmpty(etX)){ 
     etX.setEnabled(false); 
     id.previousId(); 
     etX = getETFromResource(id); 
     etX.requestFocus(); 
    } 
} 
public void check(){ 
     etX = (EditText) getCurrentFocus(); 
    if(etX.getText().toString().length()==2){ 
     focusNextFreeET(); 
    } 
} 

而且check()方法是行不通的,我不知道为什么......法在其他情况下focusNextFreeET()工作,但不是在这里。

有什么建议吗?

EDIT

忘记提到,光标实际上位于在当EditText填充有数字像22,31,10的端部,并且光标位于beggining当数具有在0它的前面,如01,02等......在这两种情况下,键盘都是隐藏的。

回答

0

使用这些线聚焦下一个项目,打开键盘

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMethodManager.toggleSoftInputFromWindow(yourEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); 
+0

这是什么“的LinearLayout”之后? –

+0

编辑我的答案。 –

+0

好的,但有没有其他的方式来做到这一点,这种方式键盘隐藏,然后隐藏。它看起来非常糟糕。 –