2011-04-08 5 views
1

내 애플 리케이션에서 버튼을 누르면 다음 코드를 처리 할 수 ​​있습니다 :뒤로 버튼을 눌렀을 때 레이아웃을 이전 레이아웃으로 설정하려면 어떻게합니까?

if (keycode == KeyEvent.KEYCODE_BACK && CURRENT_VIEW == MAIN_MENU_ACTIVE) { 
     Window window = this.getWindow(); 

     window.setContentView(R.layout.main); 
     CURRENT_VIEW = MAIN_MENU_ACTIVE; 

     return true; 

    } 

비록 그것이 실행되면, 안드로이드는 바로 레이아웃을 변경하는 대신 return 문으로 바로 이동합니다. 내가 여기서 잘못하고있는 것이 있습니까? 이것은 게임을위한 것이므로 기본적으로 사용자가 게임 만들기 화면에서 뒤로 가기 버튼을 눌러 주 메뉴로 돌아갈 수 있기를 바랍니다.

+0

어떤 유형의 필드가 CURRENT_VIEW 및 MAIN_MENU_ACTIVE입니까? 문제가 CURRENT_VIEW == MAIN_MENU_ACTIVE에 있어야합니다. – Tenfour04

+0

둘 다 정수입니다. 나는 그것들을 사용하여 화면에 보여지는 레이아웃을 추적합니다. if 문에 중단 점을 넣으면 return 문으로 바로 넘어갑니다. – ertemplin

+0

OMG 내 잘못, 실수로 if 문을 통과하지 못했습니다. 시간을 낭비해서 죄송합니다. – ertemplin

답변

0

그냥 setContentView(R.layout.main);을 사용하십시오. Window을 사용하지 마십시오. 필자는 그렇게 할 필요가 없다고 확신합니다.

+0

활동을 시도 할 때 작동하지 않았기 때문에 창을 사용하기 시작했습니다. 항상 return 문으로 건너 뛰었습니다. 내가 나쁜 if 진술이나 뭐 그런 것 같아. – ertemplin

0

setContentView 번으로 전화하지 마십시오. 단순히 finish()을 사용하면 이전 활동으로 사용자를 돌려 보내지 않는 이유는 무엇입니까?

+0

왜 setContentView를 여러 번 호출 할 수 없습니까? 내 코드에서 setContentView를 사용하는 장소가 3 개있어 모두 잘 작동합니다. – ertemplin

+0

당신은 여러 번 그것을 연속적으로 부르고 있습니까? 이것은 오류를 생성하는 경향이 있습니다. 나는 그것이 특별히 허용되지 않는다고 확신하지 않는다. –

+0

그래, 이건 게임을위한거야. 근본적으로 나는 사용자가 게임 만들기 화면에서 뒤로 가기 버튼을 눌러 메인 메뉴로 되돌아 갈 수 있기를 원한다. 활동을 다시 시작할 수는 있지만 실행시로드 된 모든 것을 다시로드해야합니다. – ertemplin

관련 문제