【问题标题】:Android App start with virtual keyboard openAndroid App 启动时打开虚拟键盘
【发布时间】:2010-07-31 18:48:28
【问题描述】:

我正在为 android 手机编写一个应用程序,在我的初始屏幕之后,它显示了一个包含多个微调器和 edittext 视图的活动。

在没有键盘的 android 设备上,它会显示虚拟键盘,然后会阻止应用程序的其余部分,并且在我看来不专业。我试图在 activity.onCreate 方法中隐藏虚拟键盘,但在那里无济于事。

我尝试的下一个选项是将 onFocus 侦听器设置为实际有问题的 edittext 视图,但仍然无济于事。

在用户明确单击编辑文本视图之前,如何防止显示虚拟键盘?由于其中一个微调器位于布局 xml 中的 edittext 视图之前,有没有办法让微调器的焦点之一?

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以尝试在 AndroidManifest.xml 文件中设置 Activity 条目的 android:windowSoftInputMode 属性。我认为将其设置为 stateHidden 可能会满足您的需求。

    这里是 docs from the Android site.

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      在创建活动时,将输入类型设置为 TYPE_NULL。然后,onTouch,将其设置为 TYPE_CLASS_TEXT。

          myText.setInputType(InputType.TYPE_NULL);
      
          myText.setOnTouchListener(new View.OnTouchListener() {
              public boolean onTouch(View v, MotionEvent event) {
              myText.setInputType(InputType.TYPE_CLASS_TEXT);
              myText.onTouchEvent(event); // call native handler
              return true; // consume touch even
              } 
          });
      

      【讨论】:

      • 非常感谢,现在我的应用表现得更专业了。我注意到雅虎电子邮件应用程序等其他应用程序的工作方式相同,很高兴让应用程序看起来相似以增加感觉和功能。
      • 我相信这是一个不错的解决方法,但 mportuesisf 的答案更好。
      【解决方案3】:

      在线程Automatic popping up keyboard on start Activity中还有几个关于这个问题的经验的答案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-20
        • 2013-05-04
        • 1970-01-01
        • 1970-01-01
        • 2012-03-25
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        相关资源
        最近更新 更多