EditText: how to enable/disable input?

不打扰是莪最后的温柔 提交于 2019-11-28 11:10:23
Raffaele

I finally found a solution. It's a matter of calling

  • setFocusableInTouchMode(boolean)
  • setFocusable(boolean)

when the EditText is first created, so it can intercept the clicks. Then one can set those flags back again to make the EditText editable, request the focus, and manually show/hide the soft keyboard with InputMethodManager methods

RoRo

Try using this setFocusableOnTouch() instead of setFocusable() method.

Ravindra Kushwaha

Firstly write these line in yours xml in edittext

android:enabled="false"

And than use the code in java as shown below

Boolean check = true;
            EDITEXT.setEnabled(check);
            check=!check;

Setting input type to null is not enough, since it only suppress soft keyboard and if device has hardware keyboard, there will be input. So in order to suppress any editing you should do following:

editText.setInputType(InputType.TYPE_NULL);
editText.setFilters(new InputFilter[]
    {
        new InputFilter()
        {
            public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend)
            {
                return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
            }
        }
    });

That will guarantee that EditText content won't be changed

Since you are using gridview to achieve your concern you can do the following.

  1. setOnItemClicklistener on gridview
  2. Extend Edittext to make your own edittext view

The extedned class will contain boolean property named editable using this property in onItemclicklisterner of gridviewyou can call setEditable or setFocusabel or both for a editetext.

If you share your code i can elaborate more on this issue.

According the Android guide line please use LongKeyPress for the Question you have" If the user clicks on the cell one more time it should allow editing"

Ashwin N Bhanushali

You can do the follwoing:
If you want to make edittext not editable then use following method

edittext.setInputtype(Null);

If you want to make edittext editable then use the same method and set the proper inputype visit the following link for more info

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!