单击网格视图单元格

时间:2016-05-05 21:35:18

标签: android gridview keyboard user-input

我有一个网格视图,想要在用户点击单元格时显示键盘。然后键盘的输入将出现在单元格中。我已经尝试了下面的代码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中会出现一个字母。我的想法可能吗?

由于

1 个答案:

答案 0 :(得分:1)

一个建议:

  1. 创建custom EditText,如果需要,可以hide the cursor(使其看起来像TextView)。
  2. 删除LinearLayout
  3. ,优化您的单元格布局

    代码:

    <?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>
    
    1. 使用TextWatcherfocus界面来控制键盘的show/hide
    2. 希望这有帮助!