单击gridview项,edittext获得焦点

时间:2014-08-27 05:57:38

标签: android gridview android-edittext

我已经显示了一个gridview,其项目是textview和edittext.Now,如何实现我点击gridview项目和edittext得到焦点的功能?

gridview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

如何覆盖此功能? 我之前尝试过:

((EditText)gridview.getChildAt(position).findViewById(R.id.grid_edittext)).requestFocus();

还有:

((ViewGroup)gridview.getChildAt(position)).getChildAt(1).requestFocus();

添加了一个System.out.printlen(“hello”); 在onitemclick函数中,但它没有出现在logcat中。

有样品吗?

2 个答案:

答案 0 :(得分:1)

EditText获取AdapterView并设置requestFocus(),如下所示。这可能是有效的。

gridView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
            EditText edittext = (EditText) view.findViewById(R.id.grid_edittext);
            edt.setFocusable(true);
            edittext.setFocusableInTouchMode(true);
            if (edittext.requestFocus()) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(edittext, InputMethodManager.SHOW_IMPLICIT);
            }
      }
   });

修改focusablefocusableInTouchMode设为false EditText,如下所示:

android:focusable="false"
android:focusableInTouchMode="false" 

答案 1 :(得分:0)

使用gridView时,TextView和EditText不应该有标志

android:singleLine="true"

除非你想要一个外国焦点行为,否则你可以使用

 android:lines="1",
不要问我为什么!它是那种android OS bug, 希望这会有所帮助,