2016-12-23 2 views
-2

을 보여주고, 나는 ProgressDialog을하고 dialog.setCancelable(false);으로 보여주는에 때 나는 onBackPressed 또는 onKeyDown를 실행할 수 없습니다. 진행 상황이 표시되는 시나리오가 있지만 코드를 다시 실행하려면 뒤로 버튼을 누르십시오. 모든 도움이 절실합니다!이`onBackPressed` 및 트리거 할 수 없습니다`onKeyDown`해서 ProgressDialog 줄 내가 이상한 문제에 붙어있어

+0

어떤 의견이 있어도, 왜 아래로 투표합니까? – Choletski

+0

이미 시도한 것을 보여주기 위해 코드를 추가해야 할 것입니다. 이 작업을 수행하지 않으면 다운 표가 발생합니다. –

+0

@RaymonddelaCroix 코드가 사소한 것입니다. 가장 중요한 코드를 언급하는 것에 대해 설명했습니다 ... – Choletski

답변

0

은 만 터치 당신은 다음 여전히 BACK 버튼을 사용할 수 있어야 대신 dialog.setCancelable(false);

dialog.setCanceledOnTouchOutside(false);를 사용하여 대화 상자가 취소 할 수 없습니다하십시오. 대화 상자 닫기의 기본 동작을 억제하려면 OnBackPressed을 무시해야합니다. setCanclable가 true로 설정되어있는 경우는 그냥 대화를 확장 대화 클래스를 만들 필요가

onBackPress() 또는 키 이벤트에 어떤 일을 할 수 없습니다 그래서

public void onBackPressed() { 
     if (mCancelable) { 
      // cancle and it will return 
     } 
} 

안드로이드 대화 클래스 BackPress 방법 쇼로

+0

xx가 발생했습니다 추측하지만이 내 usecase, ProgressDialog 여전히 표시해야합니다 맞지 않는 있지만 다시 단추를 트리거 할 필요가 ... – Choletski

+0

그 이유는 당신이 기본 동작. 그렇지 않으면 작동하지 않습니다. –

+0

예, 아마도 setOnCancelListener()를 의미했습니다. – Choletski

1

그냥 onBackPress() 메서드를 재정의 할 필요가 있습니다.

public class MyDialog extends Dialog { 

    public MyDialog(Context context, myOnClickListener myclick) { 
     super(context); 
     this.myListener = myclick; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.alert); 
    } 
    @Override 
    public void onBackPressed() 
    { 

    // do thing which you want to do on back press 
    } 
    // same for key 
} 

희망이 도움말

관련 문제