繁体   English   中英

Android EditText 不显示键盘

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM