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);
}
}
以上,便是我对输入框的处理。当然解决方法多种多样,只是提供一种思路。