2011-09-20 5 views
0

내 응용 프로그램에 editText가 있고OnFocusChangeListener가 gui를 잠급니다.

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에 포커스를두고 텍스트를 입력하면 GUI가 잠겨 있습니까?

+1

귀하의 dataModel.update ... 메소드가 반환합니까? –

+0

updateParamsValue()는 OnFocusChangeListener가 아닌 gui를 잠급니다. 서버 또는 인터넷과 통신하는 경우 updateParamsValue()를 백그라운드 프로세스에 넣어야합니다. – ngesh

+0

updateParamsValue는 매우 간단한 작업이며 아무것도 반환하지 않습니다. – ikbal

답변

1

dataModel.updateParamsValue가 과중한 조작입니까? 리스너는 UI 스레드에서 작동하므로 UI가 완료 될 때까지 UI가 잠 깁니다. 다음과 같이 코드를 변경해보십시오.

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

실제로 매우 간단한 작업입니다. , 나는 이것을 많은 장소에서 사용한다. 문제는 내가 타이핑 한 것을 볼 수 없다는 것이다. – ikbal