Android EditText没有显示键盘

时间:2014-02-03 14:43:56

标签: android

我刚开始在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);

} 

3 个答案:

答案 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

没有它,键盘将无法打开。