编辑文本焦点更改侦听器

时间:2018-03-19 10:53:04

标签: android android-edittext focus

我在Recycler视图的项目中有两个Edit文本,我为每个编辑文本设置了一个焦点更改侦听器。两者的输入类型是文本。焦点更改侦听器适用于第一个编辑文本,但对于第二个,即使我从键盘单击检查按钮(右下角)它也不会失去焦点。可能是什么问题?

holder.textView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                //textView.setGravity(Gravity.LEFT);
                if(b){
                    holder.textView.setTextColor(getResources().getColor(R.color.TabYellow));
                    discreteScrollView.scrollToPosition(infiniteAdapter.getClosestPosition(position));
                }
                else {
                    Toast.makeText(getActivity(),"Input loose focus",Toast.LENGTH_SHORT).show();
                    InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                    holder.textView.setTextColor(getResources().getColor(R.color.white));
                    //  textView.setGravity(Gravity.CENTER);
                }
            }
        });
        holder.newToDo.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                if(b){
                    discreteScrollView.scrollToPosition(infiniteAdapter.getClosestPosition(position));
                }
                else {
                    Toast.makeText(getActivity(),"Input loose focus",Toast.LENGTH_SHORT).show();
                    InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                }
            }
        });`

1 个答案:

答案 0 :(得分:0)

虽然创建这种类型的布局不是一个好方法,但你仍然可以做的是添加键盘的keyEventListner并检查键的类型并插入将焦点传递到另一个位置的代码。编辑文字。