2015-01-19 8 views
-1

내 activity_main.xml에는 2 개의 버튼이 있습니다. onClickListner()를 구현했습니다. 둘 다.안드로이드 코드의 main_activity에서 setContentView (layout_id)를 두 번 사용하는 방법은 무엇입니까?

MainActivity의 경우 -> setContentView (R.layout.activity_main) 이 activity_main에는 2 개의 버튼이 있습니다.

Button1 - setContentView (R.layout.layout1); Button2 - setContentView (R.layout.layout2);

이것을 사용하는 적절한 방법입니까? 왜냐하면 ...

프로그램이 정상적으로 실행됩니다. 문제는 Button2를 클릭하면 layout2가로드되고 main_activity로 돌아가고 싶습니다. 그래서 '뒤로'버튼을 누릅니다. 전체 앱이 닫힙니다 .. !! 나는 전화기의 홈 화면으로 이동한다.

이 문제를 해결하는 방법 ?? 나는 ViewSwitcher를 말한다. 나는 돌아갈 버튼이 없다.

다른 방법으로 ?? 기본적인 질문과 나쁜 영어로 변명하십시오.

답변

0

당신은 꽤 많이 번 이상 setContentView() 더 전화를해서는 안됩니다. 당신이 설명하는 것은 표준 백 스택 동작입니다. 전환하려는 레이아웃이 무엇이든 Activity을 시작하거나 Fragment을 사용하도록 전환하고 setContentView() 대신에 Fragment을 백 스택에 추가하십시오.

두 가지 방법 모두 뒤로 버튼에 대한 기본 동작 지원을 제공합니다.

1

귀하의 활동에서 onBackPressed() 함수를 재정의해야하고 다시 setContentView를 activity_main.xml로 가져와 onBackPressed에서 super.onBackPressed를 제거해야합니다. 이 같은

뭔가 :

@Override 
public void onBackPressed() { 
    //validation if you are in second layout 
    if(layout2){ 
     //do things 
     showLayout1(); 
    }else{ 
     super.onBackPressed(); 
    } 
} 
+0

고맙습니다 ... 어떻게 작성합니까 if (layout2) ?? 현재보기가 layout2로 설정되어 있는지 확인하는 방법은 무엇입니까? –