android TV盒子开发------控制editext弹出输入法

TV的应用最大的困扰就是焦点了。比如edittext,android默认为获取焦点时弹出输入法。对手机来说很方便,对于TV用户体验不好(弹出键盘儿用户并不想输入)。 那么我们就需要这样一个edittext即:只有在遥控盘点击确定后才弹出键盘。 步骤如下

一、在创建时禁止键盘弹出
mEditText.setInputType(EditorInfo.TYPE_NULL); //设置弹出的键盘类型为空

【android TV盒子开发------控制editext弹出输入法】二、点击edittext弹出键盘
public void onClick(View v) { mEditText.setInputType(InputType.TYPE_CLASS_TEXT); mEditText.requestFocus(); InputMethodManager imm = (InputMethodManager)mEditText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mEditText, 0); }

上面的代码是给edittext添加点击事件监听,点击后修改键盘类型就可以弹出焦点了。但是onclick有个问题:需要点击两次edittext才能弹出键盘。于是我让他强制弹出( InputMethodManager ),不要忘了让edittext事先获得焦点,获得输入内
容。
三、失去焦点时,设置键盘为空
public void onFocusChange(View v, boolean hasFocus) { if(!hasFocus) { mEditText.setInputType(InputType.TYPE_NULL); } }

以上,便是我对输入框的处理。当然解决方法多种多样,只是提供一种思路。

    推荐阅读