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

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

一、在创建时禁止键盘弹出

mEditText.setInputType(EditorInfo.TYPE_NULL);//设置弹出的键盘类型为空

二、点击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);
        }
        }

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

你可能感兴趣的:(android-tv)