2014-04-16 1 views
0

Android 애플리케이션에 TimePickerDialog가있는 활동이 있습니다. 대화 상자 외부의 화면을 터치하면 내 TimePickerDialog가 닫힙니다. 이 문제를 피할 수 있습니까?Android에서 TimePickerDialog가 예기치 않게 닫습니다.

protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case TIME_DIALOG_ID: 
      // set time picker as current time 
      Calendar c = Calendar.getInstance(); 
      int currentHour = c.get(Calendar.HOUR_OF_DAY); 
      int currentMinute = c.get(Calendar.MINUTE); 
      TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
        timePickerListener, currentHour, currentMinute,true); 
      timePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        if (which == DialogInterface.BUTTON_NEGATIVE) { 
         startPreviousActivity(); 
        } 
       } 
       }); 
      timePickerDialog.setOnCancelListener(new OnCancelListener(){ 
       @Override 
       public void onCancel(DialogInterface dialog){ 
        startPreviousActivity(); 
       }}); 
      timePickerDialog.setTitle(timeSetting); 
      Window window = timePickerDialog.getWindow(); 
      window.setGravity(Gravity.TOP); 
      WindowManager.LayoutParams wlp = window.getAttributes(); 
      wlp.y = (int)(100 * dpHeight/MIN_HEIGHT); 
      window.setAttributes(wlp); 
      return timePickerDialog; 
     } 
     return null; 
    } 

답변

1

당신은이 작업을 수행 할 대화의 방법 setCanceledOnTouchOutside를 사용할 수 있습니다

여기 내 코드입니다.

timePickerDialog.setCanceledOnTouchOutside(false); 
관련 문제