AlertDialog 빈 곳을 클릭하고 버튼으로 돌아가는 동작

4
  • AlertDialog를 팝업한 후 공백을 누르면 기본Dialog가 사라집니다

  • 4
  • 리턴 버튼을 누르면 기본적으로 사라집니다

  • 그러면 공백을 누르고 대화상자를 숨기지 않고 안드로이드의 리턴 버튼을 누르면 이전의Activity로 돌아가는 방법은 무엇입니까?
    코드를 직접 보려면 다음과 같이 하십시오.
    //*******************
    public static void showAlertDialog(final Context context, String title, CharSequence[] items,
                OnClickListener listener, boolean canceledOutside){
        	Builder builder = new AlertDialog.Builder(context).setTitle(title).setItems(items, listener);
        	if(canceledOutside){
        		builder.show();
        	}else{
                AlertDialog dialog = builder.create();
                //  dialog      ,dialog    
                dialog.setCanceledOnTouchOutside(false);
                dialog.setOnKeyListener(new OnKeyListener() {
    				@Override
    				public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
    					if (keyCode == KeyEvent.KEYCODE_BACK && 
    			                event.getAction() == KeyEvent.ACTION_UP) {
    						// back ,     Activity
    						dialog.cancel();
    						boolean isActivity = context instanceof Activity;
    						if(isActivity){
    							Activity act = (Activity)context;
    				            act.finish();
    						}
    			            return false;
    			            }
    					return false;
    				}
    			});
                dialog.show();
        	}
        }

    dialog의 dismiss와 cancel 방법의 차이점:
    cancel은 Cancel Listener를 호출합니다. 이것은 가장 큰 차이입니다. 또한 cancel은dismiss를 호출합니다.

    좋은 웹페이지 즐겨찾기