我有一个网格视图,希望在用户单击单元格时显示键盘。然后,键盘的输入将显示在单元格中。我试过下面的代码,我从安卓系统得到:当焦点放在EditText和其他类似的问题上时,自动显示软键盘。不过,我无法让键盘出现。
对此有什么想法吗?
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,int position, long id) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(gridView, InputMethodManager.SHOW_IMPLICIT);
}
});
我试过InputMethodManager.SHOW_FORCED,但也没用。
感谢
编辑
网格的单元格布局如下。我把它改成了EditText,但仍然没有键盘。从用户界面的角度来看,将其作为EditText对我来说并不太好。理想情况下,我是TextView,然后当用户单击它时,它可能会变成EditText,这样用户就可以输入一些内容。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp" >
<EditText
android:id="@+id/grid_item_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/celllabel"
android:textSize="15px" >
</EditText>
我的想法是它保持为TextView。键盘打开,当用户单击一个字母时,键盘关闭,一个字母出现在GridCell中。我的想法可能吗?
感谢
一个建议:
- 创建一个自定义
EditText
,如果需要,可以隐藏光标(使其看起来像TextView
) - 通过删除
LinearLayout
优化单元格布局
代码:
<?xml version="1.0" encoding="utf-8"?>
<YourCustomEditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_item_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@+id/celllabel"
android:maxLength="1"
android:textSize="15px" >
</YourCustomEditText>
- 使用
TextWatcher
或focus
界面控制键盘的显示/隐藏
希望得到帮助!