0

방금 ​​Play 스토어에 게임을 게시했으며 더 멋지고 직관적으로 보이도록 계획했습니다. Android 대화 상자를 광산으로 대체하려고합니다.메서드 호출 - onActivityResult 대 DialogInterface.OnClickListener()

사용자가 레벨을 완료하면 표시 할 사용자 정의 대화 상자가 필요하고 사용자가 일부 버튼을 클릭하면 대화 상자 (대화 상자처럼 보이게 만드는 사용자 정의 테마의 활동)는 정수를 반환해야합니다 setResult(customResult, intent)으로 입력 한 다음 마칩니다.

startActivityForResult(intentCustomDialog, 0)을 수행 한 활동의 ​​onActivityResult()에 resultCode가 수신되면 레벨을 다시 시작하거나 결과에 따라 다음을 실행하는 사용자 지정 메서드를 호출하는 것이 문제입니다 (사용자가 어떤 단추를 클릭했는지 파악하는 데 사용됨).). 이 방법은 크로노 미터를 다시 시작해야하지만 아무것도하지 않습니다 !!!!!!!
반대편에서 안드로이드 대화 상자를 사용할 때 onClickListener에서 restart() 호출을 넣으면 크로노 미터가 성공적으로 다시 시작됩니다!

그래서 나는 무엇을 놓치고 있습니까? restart() 전화가 onClickListener의 Android 대화 상자를 사용하여 크로노 미터를 성공적으로 다시 시작한 이유는 무엇입니까? onActivityResult() 방법에서 전화를 걸면 어떻게 되나요? 난 내 자신의 대화 상자 구현하고 사용하는 onActivityResult()을하거나 사용자 지정을 사용자 정의 대화 상자 활동과 일상 생활의 startActivityForResult() 출시를 분리하는 onDialogResult() 메서드를 호출 할 수 있도록

은 매우 도움이 될 것입니다.

미리 감사드립니다. 내 게임 클래스에서

편집

:

... 
public static final int RESULT_RESTART = 8; 
public static final int RESULT_NEXT = 9; 
public static final int RESULT_MENU = 10; 
... 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (resultCode) { 
     case RESULT_MENU: 
      back(null); 
      break; 
     case RESULT_NEXT: 
      nextGrid(); 
      break; 
     case RESULT_RESTART: 
      restartGrid(); 
      break; 
    } 
} 

restartGrid() 메소드 :

public void restartGrid() { 
    ... 
    startChrono(); 
    ... 
} 

public void startChrono() { 
    chrono.setBase(SystemClock.elapsedRealtime()); 
    chrono.start(); 
} 

작품 완벽 DialogInterface.OnClickListener()에서.

public void startChrono() { 
    chrono.post(new Runnable() { 
     @Override 
     public void run() { 
      chrono.setBase(SystemClock.elapsedRealtime()); 
      chrono.start(); 
     } 
    }); 
} 

을하지만 착색 된 뷰가 제대로 포스트 방법을 사용하여 whithout reseted대로 크로노 미터를 위해 그렇게해야 할 이유를 나는 아직도 이해가 안 .. :

+0

'onActivityResult()'가 호출 되었습니까? – Caner

+0

그래, 플레이어가 착색 한 뷰가 원래 색으로 성공적으로 재설정되었으므로 확신합니다. 그것이 이상하게 만드는 이유는 메커니즘이 완벽하게 작동하기 때문에 크로노 미터 만 이유없이 리셋되지 않습니다. – Flawyte

+0

당신은 크로노 미터 코드와'onActivityResult()' – Caner

답변

0

일하러 수 . 어쨌든 작동합니다.