비동기 로 진행 막대 불 러 오기,검색 키 차단

2090 단어 자바searchdialog
시간 이 걸 리 는 작업 을 할 때 진도 표를 써 서 인터페이스 에서 실 행 됩 니 다.그러나 리 턴 키 를 누 르 면 검색 키 가 사라 지지 만 시간 이 걸 리 는 작업 이 진행 중 입 니 다.어떻게 해 야 합 니까?
진행 항목:ProgressDialog 대화 상자;1.비동기 로드 진도 바 차단 반환 키 는 간단 합 니 다.dialog.setCancelable(false)만 설정 하면 됩 니 다.됐다.2.하지만 차단 검색 키 에는 이미 만들어 진 것 이 없습니다.아이디어 1,onKeyDown 함수 다시 쓰기:
자바 코드
  • boolean boo=flase 를 정의 하고 시간 소모 작업 에서 boo=true 를 설정 합 니 다.작업 완료 설정 boo=flase;

  • 재 작성 onKeyDown:
  • public boolean onKeyDown(int keyCode, KeyEvent event) {
  • switch (keyCode) {
  • case KeyEvent.KEYCODE_SEARCH: {
  • if(boo){
  • return true;
  • }else{
  • break;
  • }
  • }
  • return super.onKeyDown(keyCode, event);
  • }
  •    boolean boo = flase,         boo = true;      boo = flase;
      onKeyDown:
    public boolean onKeyDown(int keyCode, KeyEvent event) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_SEARCH: {
    	if(boo){
                        return true;     
                    }else{
                    break;	
                }                   
             }
            return super.onKeyDown(keyCode, event);
        }
    

     
    실행 중 이 방법 이 실행 되 지 않 는 것 을 발 견 했 습 니 다.검색 키 를 누 르 면 검색 기능 이 차단 되 었 지만 진도 바 는 사 라 졌 습 니 다.
    원래 비동기 로 진도 바 를 불 러 온 후에 진도 바 는 초점 을 얻 었 고 onKeyDown 은 화면 이 며 진도 바 가 아 닙 니 다.so
    자바 코드
  • dialog.setOnKeyListener(new DialogInterface.OnKeyListener(){
  • public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {
  • if (keyCode == KeyEvent.KEYCODE_SEARCH) {
  • return true;
  • }
  • return false;
  • }
  • });
  • dialog.setOnKeyListener(new DialogInterface.OnKeyListener(){
        	public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {				
        		if (keyCode == KeyEvent.KEYCODE_SEARCH) {					
        			return true;				
        		}				
        		return false;			
        	}		
        });

     
    됐다.

    좋은 웹페이지 즐겨찾기