【问题标题】:How do I show the Phone Input softkeyboard when my activity starts?如何在我的活动开始时显示电话输入软键盘?
【发布时间】:2016-02-21 23:00:03
【问题描述】:

在我的 AndroidManifest.xml 中的 Activity 标记之间:

android:windowSoftInputMode = "stateVisible"

所以当我的活动开始时,软键盘就会出现:

我不能添加一些东西来代替手机输入键盘吗?或者我该怎么做?谢谢。

编辑

为了清楚这个问题,我添加了这个“编辑”。

首先,感谢以下所有答案。

但是,我的目标是首先在屏幕上不显示 Edittext。活动开始和用户开始时,电话输入软键盘就会出现 键入然后 Edittext 将变得可见,并且正在键入的文本。

我尝试让Edittext不可见,然后在用户开始输入时使其可见,但问题是不可见的edittext无法获得焦点,

所以,android:inputType="number" 没有任何效果。两者都不是:edittext.requestFocus(); 因为edittext 是不可见的。

我最终做的事情非常简单,在我的 xml 中将宽度和高度设置为 0dp,例如:

android:id="@+id/etPhoneNumber"
android:layout_width="0dp"
android:layout_height="0dp"
android:inputType="number" />

这样,edittext 可以通过

获得焦点
edittext.requestFocus();

一旦创建了活动,inputType = "number" 就会被识别。

接下来我要做的是在软键盘上按下一个键后立即增加编辑文本的大小,以便用户可以看到它。

我会将所有这些作为答案放入其中,以便对其他用户有所帮助。 +1 寻求帮助!

【问题讨论】:

    标签: android android-softkeyboard


    【解决方案1】:

    假设您在启动应用后显示的Activity 中有一个EditText,您可以将以下XML 属性添加到您的EditText

    android:inputType="phone"
    

    如果需要,请检查开发人员docs 是否有其他输入类型。

    【讨论】:

      【解决方案2】:

      你可以添加

      android:inputType="phone"
      

      android:inputType="number"
      

      到您的 XML 布局中的视图。

      您的代码中应该有一些视图,您可以在其中提供诸如 EditTextAutoCompleteTextView 之类的输入来更改键盘的类型。

      例如——

             <EditText
              android:layout_width="match_parent"
              android:layout_height="50dp"
              android:inputType="phone"
              />
      

      【讨论】:

        【解决方案3】:

        在清单文件中设置活动中的属性,

        android:windowSoftInputMode="stateAlwaysVisible"
        

        然后在你的 EditText 设置属性的 xml 中,

        android:inputType="number"
        

        【讨论】:

          【解决方案4】:

          首先在您的 xml 中添加一个 EditText

           <EditText
                      android:id="@+id/etPhoneNumber"
                      android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:inputType="number" />
          

          在活动的 onCreate 方法中使用这段代码!

              EditText etPhoneNumber = (EditText) findViewById(R.id.etPhoneNumber);
          
              etPhoneNumber.requestFocus();
          
              InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                      imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
          

          这对我很有效!希望它也适合你!

          让我知道这是否有效! :)

          【讨论】:

          • 谢谢,但只是代码的第一部分,EditText etPhoneNumber = (EditText) findViewById(R.id.etPhoneNumber); etPhoneNumber.requestFocus();似乎做得很好 - 与我的 XML 中的 android:inputType="number" 结合使用。您能看到将代码的最后一部分排除在外的任何问题吗?如果不需要,讨厌有代码。
          【解决方案5】:

          最初的目标是在屏幕上不显示Edittext

          电话输入软键盘会在 Activity 启动和用户启动时立即出现 键入,然后Edittext 将变为可见,并键入文本。

          我尝试让 Edittext 不可见,然后在用户开始输入时使其可见,但问题是不可见的 edittext 无法获得焦点,

          所以,android:inputType="number" 没有任何效果。两者都不是:edittext.requestFocus(); 因为编辑文本是不可见的。

          我最终做的事情非常简单,在我的 xml 中将宽度和高度设置为 0dp,例如:

          android:id="@+id/etPhoneNumber"
          android:layout_width="0dp"
          android:layout_height="0dp"
          android:inputType="number" />
          

          这样,edittext可以用

          获得焦点
          edittext.requestFocus();
          

          一旦创建活动,inputType = "number" 就会被识别。

          现在要做的下一件事是在软键盘上按下一个键时立即增加编辑文本的大小,以便用户可以看到它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-04-01
            • 2016-02-11
            • 2011-10-17
            • 2012-07-12
            • 2011-08-17
            • 1970-01-01
            相关资源
            最近更新 更多