我有一个网格视图,想要在用户点击单元格时显示键盘。然后键盘的输入将出现在单元格中。我已经尝试了下面的代码Android: show soft keyboard automatically when focus is on an 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但仍然没有键盘。从UI的角度来看,将它作为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中会出现一个字母。我的想法可能吗?
由于
答案 0 :(得分:1)
一个建议:
EditText
,如果需要,可以hide the cursor(使其看起来像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
界面来控制键盘的show/hide。希望这有帮助!