如果我点击我的EditText,虚拟键盘就不会显示出来了。显示光标,但没有键入键盘。
我甚至尝试手动打开,但没有效果。
这是我的代码:
public class CreateNote extends Activity {
EditText titleEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createnote);
titleEdit = (EditText) findViewById(R.id.titleEdit);
titleEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) CreateNote.this
.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(titleEdit, 0);
}
});
}
}
布局片段:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#989898" >
<EditText
android:id="@+id/titleEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittextdrawale"
android:ems="10"
android:textColor="#fff"
android:textColorHint="#fff" >
<requestFocus />
</EditText>
</FrameLayout>
玩隐藏和寻找虚拟键盘的原因是什么? 我在真实设备上测试,而不是在模拟器上测试。
答案 0 :(得分:9)
试试这个,它对我有用。
EditText etHorseName = (EditText) getView().findViewById(R.id.horseName);
etHorseName.clearFocus();
在onCreate()
或您想要的地方。
答案 1 :(得分:3)
迟到的答案,但这里是如何在不添加代码的情况下解决它,只需从XML中删除它:
<requestFocus />
当设置键盘时,不知道键盘为什么不显示...但是如果您首先松开焦点然后单击编辑文本,它会显示出来。我在Android 2.3.6上遇到了问题,但它在4.1.2上工作,所以也许这是一个早期的错误。
答案 2 :(得分:0)
这只是一种默认行为,您不应该手动执行此操作,从代码中删除以下部分。
titleEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) CreateNote.this
.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(titleEdit, 0);
}
});
答案 3 :(得分:0)
尝试使用以下代码隐藏和显示键盘:
InputMethodManager imm = (InputMethodManager) this.getSystemService(Service.INPUT_METHOD_SERVICE);
// To show keyboard
imm.showSoftInput(titleEdit, 0);
// To hide keyboard
imm.hideSoftInputFromWindow(titleEdit.getWindowToken(), 0);