我刚开始在Android上编程并完成了MyFirstApp教程:
http://developer.android.com/training/basics/firstapp/building-ui.html
应用程序运行,但是当我触摸文本字段时,软键盘不会弹出。
<EditText
android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"
android:focusable="true"
android:focusableInTouchMode="true"
>
</EditText>
我尝试过添加:
<requestFocus />
但这没什么区别。
我已将此添加到mainifest中,但这也没有区别:
android:windowSoftInputMode="stateAlwaysVisible"
当然这种功能已经内置,我不必创建自定义功能(方法)来实现这一目标吗? - 我本来希望教程至少提到键盘不会使用提供的代码弹出,因为我花了最后3个小时试图弄清楚我的代码出了什么问题!
我正在研究最新的4.42并添加了clearFocus()但是没有区别:
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
editText.clearFocus();
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
答案 0 :(得分:1)
如果你说你正在使用哪个版本(2.3 / 4.4等)但假设它是2.1-2.3会有所帮助,那么这个链接可以帮助你:
https://stackoverflow.com/a/7743066/2978914
它声明您应该清除编辑文本本身的焦点。
直接引用上面的链接:
好的,这可能是一个迟到的回应,但它确实有效。
我在android 2.1和2.3.x上遇到过这个问题(未经过其他测试) 版本的SDK)。
当我点击EditText时,我注意到一件奇怪的事情 无法打开键盘,我按下BACK按钮显示 警告对话框,然后我取消(关闭)它,然后单击EditText 再次,现在键盘重新焕发活力。
由此可以得出结论,键盘将始终显示为 EditText如果EditText以前没有焦点(显示一个 EditText视图上的警告对话框将使EditText丢失 焦点)。
所以当你的EditText被调用时,请调用下面的函数 前:
mEditText.clearFocus(); 或
<强> parentViewThatContainsEditTextView.clearFocus(); 强>
答案 1 :(得分:0)
好的,这似乎是版本18(4.4)中的一个错误,当我编译版本14时,键盘出现。
android:targetSdkVersion="14" />
android:targetSdkVersion="18" />
答案 2 :(得分:0)
对于那些在点击 EditText 时仍然无法打开键盘的人,请检查以设置 android:inputType
。
没有它,键盘将无法打开。