OnFocusChangeListener блокирует графический интерфейс - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть editText в моем приложении, и я добавляю слушателя, как показано в коде ниже

if(edit!=null){
        edit.setOnFocusChangeListener(new View.OnFocusChangeListener() {            
            public void onFocusChange(View v, boolean hasFocus) {           
                // TODO Auto-generated method stub
                if( paramKey!=null){

                    if(!hasFocus){
                    if(edit.getText()!=null)
                        dataModel.updateParamsValue(paramKey, edit.getText().toString());
                    }

                }
            }

        });
    }

Когда я фокусируюсь на своем editText и вводим текст, он блокирует графический интерфейс, я что-то пропускаю?

1 Ответ

1 голос
/ 20 сентября 2011

Является ли dataModel.updateParamsValue тяжелой операцией?Ваш слушатель работает в потоке пользовательского интерфейса, поэтому он будет блокировать пользовательский интерфейс до его завершения.Попробуйте изменить код следующим образом:

if(edit.getText()!=null)
                v.post(new Runnable(){
                    dataModel.updateParamsValue(paramKey, edit.getText().toString());
                });
            }
...