[英]Android EditText not showing keyboard
我刚刚开始在 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);
}
如果您说您正在使用哪个版本(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();
好的,这似乎是版本 18(4.4)中的错误,当我为版本 14 编译时,出现键盘。
android:targetSdkVersion="14" />
android:targetSdkVersion="18" />
对于在单击 EditText 时仍然无法打开键盘的任何人,请检查是否设置了android:inputType
。
没有它,键盘将无法打开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.