各位好,我现在的程序中,界面上有一个EditText,输入内容点击通过inflate切换到了别外一个view上。当程序再切换回原来的界面,再点击这个EditText,软键盘就出不来了,只能通过硬键盘输入。除非点击这个界面上的其它EditText然后再点回来。 我也尝试过在这个EditText的click事件中加requestFocus,也不管用。  不知那位能够指教一下。

解决方案 »

  1.   

    在edittext的onFocusChange中加上
    if(((EditText)arg0).hasFocus()){
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
            imm.showSoftInput(arg0, 0);//arg0   onFocusChange中的第一个参数
    }
    试试你那种情况有没有效。同一个activity中焦点切换测试是有效的。
      

  2.   

    多谢2楼的回答,我又仔细看了一下。发现是我调用了ProgressDialog 导致焦点无法返回到原来的EditText中导致的,但是我使用网上说的Handler 方法,来使ProgressDialog  dismiss也没能解决问题。继续排查中
      

  3.   

    你代码怎么写的?我程序里有edittext,然后弹个alartdialog,取消后点击edittext依然可以弹出输入法的。
      

  4.   

    谢谢楼上的回复,alartdialog与ProgressDialog 不太一样。 alartdialog有按钮,一点确认焦点就正常了。 ProgressDialog 没有按钮,过程完成就自动消失了。