【问题标题】:problem in hiding the keyboard when an editbox is clicked in Android app在 Android 应用程序中单击编辑框时隐藏键盘的问题
【发布时间】:2011-10-04 07:55:25
【问题描述】:

在我的应用程序中,我有一个编辑文本框。当用户单击编辑框时,我想向他显示一个警报框,当时我不希望弹出键盘。为此,我的代码如下

bd =(EditText)findViewById(R.id.dob);
bd.setHint("Birth Date");
bd.setOnClickListener(bdListener); 



private OnClickListener bdListener = new View.OnClickListener()
 {
     public void onClick(View v) 
     {
      hidesoftkeyboard();
      DOBalert();
     }
 }




private void hidesoftkeyboard()
  {
    InputMethodManager imm = InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromInputMethod(bd.getWindowToken(), 0);
  }

但是键盘还是没有隐藏,哪里出错了请朋友们帮帮我

【问题讨论】:

标签: android keyboard hide android-edittext


【解决方案1】:

尝试将其添加到您的 hidesoftkeyboard() 方法中:

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

或者

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

【讨论】:

  • 这对我不起作用,而且我很紧急,我将编辑文本更改为文本视图
【解决方案2】:

上述答案对我不起作用,最后我将编辑框更改为文本视图。

【讨论】:

    【解决方案3】:
     android:windowSoftInputMode=[         "stateUnchanged", "stateHidden",
                                           "stateAlwaysHidden", "stateVisible",
                                           "stateAlwaysVisible",
                                           "adjustResize", ] >   
    

    在清单中使用其中的一些,这将隐藏自动弹出的键盘。但是,如果您有时使用 EditText 进行某些输入,您将需要键盘。 :)

    【讨论】:

      【解决方案4】:

      在你的活动中试试这个

          @Override
          public boolean dispatchTouchEvent(MotionEvent event) {
             boolean ret = super.dispatchTouchEvent(event);
             hidesoftkeyboard();          
             return ret;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多