如果输入的值错误,如何为AutoCompleteText视图设置焦点

问题描述

||
setonFocuschangelistener(new OnFocuschangelistener()
    {

        @Override
            public void onFocusChange(View v,boolean hasFocus) 
            {
                // Todo Auto-generated method stub
            if (currentfocus==false)
            {
                if (!v.hasFocus())
                {   
                    currentfocus=true;
                    v.requestFocus();
                    return;
                }
            }
                if(currentfocus==true)
                {
                    if(v.hasFocus())
                    {
                        v.clearFocus();
                    }
                }
            }
        });
    

解决方法

        您的代码会怎样? 更改焦点时,您要求视图请求焦点(如果没有焦点),并要求视图清除焦点(如果焦点没有焦点)。 如果这些请求是异步的,那么当焦点再次从您的视图移到其他视图时,onFocusChange将不断被调用。 如果按照给定的要求处理请求,则将无限循环,并可能导致堆栈溢出。     ,        在请求任何小部件的焦点时,随身携带小部件的ID。您既需要保留焦点的ID小部件,也需要逐渐获得焦点的小部件。然后适当地使用onFocusChangeListener。 请记住,在更改焦点侦听器上,两次调用了两个小部件,一个是失去焦点的小部件,另一个是获得焦点的小部件。