活动开始时显示软键盘

时间:2010-03-17 23:01:21

标签: android keyboard soft-keyboard

我有2个活动,A和B.当A启动时,它检查条件,如果为true,则调用startActivityForResult()启动B. B只接受文本输入,因此软键盘有意义B开始时自动弹出。当活动开始时,EditText已经具有焦点并准备输入。

问题是键盘永远不会显示,即使在windowSoftInputMode="stateAlwaysVisible"标记下的清单中设置了<activity>,我也尝试将值设置为stateVisible。由于它没有自动显示,我必须点击EditText才能显示。

任何人都知道解决方案可能是什么?

10 个答案:

答案 0 :(得分:93)

对我来说最有效的是在Android Manifest中添加活动B

android:windowSoftInputMode="stateVisible"

希望对你有所帮助。

答案 1 :(得分:19)

最简单的解决方案:放

android:windowSoftInputMode = "stateVisible" 

在AndroidManifest.xml的Activity部分

答案 2 :(得分:13)

如果在EditText上的requestFocus没有显示,可能这样做:

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, 0);

查看here了解更多信息。

答案 3 :(得分:11)

对我来说,只有这个解决方案: 添加该活动的清单:

android:windowSoftInputMode="stateVisible|adjustPan"

答案 4 :(得分:5)

尝试显示键盘有一些延迟。类似的东西:

public void onResume() {
    super.onResume();

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourTextBox, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);
}

答案 5 :(得分:2)

如果您正在使用模拟器,则必须关闭硬键盘才能显示软键盘。

答案 6 :(得分:1)

文件:AndroidManifest.xml

<activity android:name=".MainActivity">

添加以下属性:

android:windowSoftInputMode="stateVisible"

这对我有用。

答案 7 :(得分:1)

我有两条路。

方法1。 在OnCreate方法中使用以下代码

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

除非您点击,否则会阻止弹出键盘。

方法2 您可以使用&#34; requestfocus&#34;将焦点转移到TextView等其他视图上。在xml中。

<TextView
            android:id="@+id/year_birth_day"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="1991">            
           <requestFocus />
           </TextView>

方法3 (我认为应该可以避免)在清单中使用以下代码 -

android:windowSoftInputMode="stateVisible"

答案 8 :(得分:1)

需要高度关注!

android:windowSoftInputMode="stateVisible|adjustPan"仅此一项不能在活动开始时显示键盘。

您还需要将其明确添加到您的班级中

editTextXYZ.requestFocus()
        val imm: InputMethodManager =
            getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.showSoftInput(editTextXYZ, InputMethodManager.SHOW_IMPLICIT)

答案 9 :(得分:0)

在setContentView之后粘贴此

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);