public void run() {
mainView.movement = true; // 버튼 움직임 가능
progress01.setProgress(0);
progress01.setMax(150);
try {
for(int i = 0; i<= 150; ++i){
Thread.sleep(150);
handler.post(new Runnable() {
@Override
public void run() {
progress01.incrementProgressBy(1); // 프로그래스바 진행
final TextView tvi = (TextView)findViewById(R.id.textView1); // 텍스트뷰 가져옴
r=0; // 점수 초기화
tvi.post(new Runnable(){
public void run(){
r = MainView.score; // 메인뷰에서 점수 가져와서 새 변수로 선언
r *=100;
tvi.setText("Score : "+r); // 스코어 출력
}
});
}
});
}
handler.post(new Runnable() {
@Override
public void run() {
mp5.start(); // 전장의 화신
mainView.movement = false; // 메인뷰 게임화면 터치 작동 x
request(); // 다이얼로그 호출
}
});
} catch (InterruptedException e) {e.printStackTrace();}
}//여기까지 public void run 매서드
}.start();// 스레드 부분
... 중략
private void request(){
String title = "Time Over";
String message = "최종 스코어 : "+r;
String titleButtonYes = "다시 시작";
String titleButtonNo = "시작화면";
AlertDialog dialog = makeRequestDialog(title, message, titleButtonYes, titleButtonNo);
dialog.setCanceledOnTouchOutside(false); // 다이얼로그 이외의 화면은 아무 반응 없음
dialog.setCancelable(false); //다이얼로그가 뜨면 뒤로가기버튼 막기
dialog.show();
}
이런식으로 소스를 만들었습니다. 게임 진행시간동안 실시간으로 점수 출력은 가능한데 게임이 끝나고
다이얼로그에서는 0값이 호출되네요.. 아무래도 변수를 다이얼로그 메소드쪽으로 전달하지 못해서인것 같은데
해결방법이 있는지 알고싶습니다.
내일부터 장마라는데 모두 조심하세요