5

我在 MainActivity 布局中有 2 个 EditTexts。如果我正常运行应用程序,第一个 EditText 会获得焦点,但软键盘没有打开。

但是当我使用这个时:

public class TestingActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        EditText et1 = (EditText) findViewById(R.id.editText1);
        EditText et2 = (EditText) findViewById(R.id.editText2);

        et2.requestFocus();
        InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        mInputMethodManager.showSoftInput(et2, InputMethodManager.SHOW_IMPLICIT);
    }
}

期待第二个 EditText 将获得焦点并且软键盘将被打开。

我只获得焦点,但只有当我单击 EditText 时才打开软键盘。

谢谢你

4

5 回答 5

7

尝试在文件中为您的活动指定android:windowSoftInputMode属性。AndroidManifest.xml

例如:

<activity android:name=".TestingActivity" android:windowSoftInputMode="stateVisible|adjustResize" />

您可能不需要InputMethodManagerActivity 中使用的任何代码。

于 2012-09-28T13:55:52.550 回答
2

我注意到键盘未显示的一个原因是选择了特定 Android 设备不支持的输入类型。例如 InputType.TYPE_NUMBER_VARIATION_NORMAL 在我的 Asus Transformer 上不起作用(没有键盘显示),而 InputType.TYPE_CLASS_NUMBER 可以正常工作。

于 2013-07-23T07:19:37.927 回答
1
    et2.clearFocus();
    et2.requestFocus();
    InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    mInputMethodManager.showSoftInput(et2, InputMethodManager.SHOW_IMPLICIT);

我在 Android N 平台上遇到了这个问题,并通过重新调整编辑视图来解决它。我不知道应该首先清除编辑视图的真正原因,但它对我来说很好。

于 2017-02-27T12:02:03.033 回答
0

有时您需要延迟显示键盘命令,所以在我的情况下,我做了以下

editText.postDelayed(new Runnable() {
        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
        }
    }, 300);
于 2017-09-28T11:13:45.797 回答
-2

要获得特定编辑文本的焦点,只需在编辑文本中添加标签。

<EditText 
    android:id="@+id/etBox"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:hint="enter into editbox"
    >
    <requestFocus/>
    </EditText>
于 2013-04-29T09:42:14.077 回答