【问题标题】:Android switching focus makes keyboard disappearAndroid切换焦点让键盘消失
【发布时间】:2015-04-27 10:41:48
【问题描述】:

当按下KEYCODE_DEL 按钮时,我想在两个EditText 视图之间切换。

我的代码有效,它确实关注了以前的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() 在其他情况下有效,但不是在这里。

有什么建议吗?

编辑

忘了说,当EditText被22,31,10这样的数字填充时,光标实际上位于末尾,而当数字前面有0时,光标位于开头,例如01 ,02 等...在这两种情况下,键盘都是隐藏的。

【问题讨论】:

    标签: android android-view


    【解决方案1】:

    在聚焦下一个项目后使用这些行来打开键盘

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

    【讨论】:

    • 这是什么“线性布局”?
    • 好的,但是有没有其他方法可以做到这一点,这样键盘隐藏,然后取消隐藏。看起来真的很糟糕。
    • 检查这个link,可能有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2011-08-21
    • 2011-05-25
    相关资源
    最近更新 更多