2014-03-31 4 views
1

안드로이드 장치의 뒤로/돌아 가기 버튼을 사용하여 응용 프로그램의 이전 레이아웃으로 전환 할 수 있지만 특정 레이아웃에만 사용하고 싶습니다. 다른 모든 경우에는 정상 닫기 응용 기능 버튼을 사용해야합니다. 이렇게하면 화면에 공간을 절약하여 "이 전에 화면으로 돌아 가기"버튼을 사용할 수 있습니다.선택형 뒤로 버튼으로 여러 레이아웃을 사용하는 가장 좋은 방법은 무엇입니까?

은 지금까지 나는이 간단한 해결책을했다 :

int screenid=0; 

public void ButtonClickN(View v) 
{ 
    setContentView(R.layout.ScreenX); 
    screenid=3; 
} 

public void onBackPressed() 
{ 
    if(screenid==2) // screen z 
    { 
     setContentView(R.layout.ScreenY); 
     screenid=1; 
     return; 
    } 
    if(screenid==3) // screen x 
    { 
     setContentView(R.layout.ScreenZ); 
     screenid=2; 
     return; 
    } 

    finish(); // all other cases button works as normal 
} 

그러나 나는 그것을 더 간단하게하는 붙박이 뭔가가있을 수 있습니다으로이,이 작업을 수행하는 가장 좋은 방법은 아니라고 생각합니다. 말하자면, 이름을 기준으로 레이아웃을 비교하여 정수를 제거하거나 레이아웃을 왼쪽에서 오른쪽으로 슬라이드 ...

또 다른 방법은 인 텐트를 사용하여 다른 작업에서 새 화면을 만드는 것입니다. 그것은 이전 개 이상의 새로운 레이아웃립니다

public void ButtonClickN(View v) 
{ 
    Intent i3 = new Intent(view.getContext(), ActivityX.class); 
    startActivityForResult(i3, 0); 
} 

이것은 이전과 안드로이드 뒤로 버튼 작동 할 수있게,하지만에서 onCreate 호출

public class ActivityX extends Activity 

모든 화면에 대한 새로운 클래스를 만들 필요 :

setContentView(R.layout.ScreenX); 

및 추가 선언이 필요합니다.

<activity android:name=".ActivityX"></activity> 

첫 번째 해결 방법과 비교하여 너무 많은 번거 로움이 있습니다. 그것은 또한 에뮬레이터에서 중첩 효과를 발생 시키므로 피하고자합니다. 지금까지 효과는 내 삼성 Galaxy Y (GT-S5360)에는 나타나지 않지만 다른 장치에서 어떤 효과가 있을지 누가 ​​알 수 있습니다.

내 질문에, 안드로이드 뒤로 버튼을 선택적으로 사용하는 더 좋고/더 쉬운 방법이 있습니까? 또는 전체 화면 레이아웃을보다 효율적으로 전환 할 수 있습니까?

답변

0

현재 사용중인 화면의 ID 정수를 분명히 유지하는 것이 가장 간단한 해결책입니다.

관련 문제