2010-07-29 10 views
4

현재 액티비티 위에 액티비티를 추가 할 수 있습니까? 예를 들어 버튼을 클릭 한 다음 두 번째 활동을 현재 활동에 추가한다고 가정 해 보겠습니다. 두 번째 활동은 현재 진행중인 활동의 작은 부분 만 다루고 있습니다.Android ==> 하위 활동?

답변

5

활동은 창을 표시하기 때문에 getWindow()를 사용하여 원하는대로 창 매개 변수를 수정할 수 있습니다. 예를 들어 채우기 부모 대신 내용을 감쌀 수 있습니다. 풀 스크린이 아닌 액티비티의 경우 먼저 manifest에서 android : theme = "@ android : style/Theme.Dialog"를 수행해야합니다. 그 자체로 활동이 대화 상자처럼 보일 것입니다 (대화 상자 프레임과 화면 중심의 내용 줄 바꿈). 거기에서 스타일 또는 레이아웃 매개 변수를 더 세분화 할 수 있습니다.

즉, 디자인은 한 번에 하나의 활동 만 실행한다는 점을 인식하는 것이 중요합니다. 따라서이 새로운 활동을 표시하면 현재 활동이 일시 중지됩니다. (아직 전체 화면 활동 이외의 활동 뒤에 표시되기 때문에 중지되지 않습니다.) 더 많은 통합 작업을 수행하려면 기본 활동에서 대화 상자를 만들고 같은 방식으로 원하는대로 창을 조정하십시오. Dialog가 훨씬 더 일반적인 접근 방법이라고 생각할지라도, 사용하는 것에 대한 결정은 단지 당신의 디자인에 더 적합한 문제 일뿐입니다.

+1

고마워요, 또한 주 활동의 상단에 두 번째 활동을 표시하기 위해 startActivityForResult를 사용하여 활동을 표시해야합니다. 내 두 번째 활동이 메뉴와 비슷해 두 활동과 상호 작용할 필요가 없어서 고맙습니다. 훌륭한 대답 이 방법이 저에게 효과적이었습니다. 두 번째 활동은 주 활동을 포함하므로 일시 중지되지 않은 경우에도 액세스 할 수 없습니다. – aryaxt

1

전체 화면을 사용하지 않는 활동을 알고있는 유일한 방법은 TabActivity에 있으며 활동을 대화 상자로 만드는 것입니다. 그래도 다른 사람들이있을 수 있습니다. 나는 당신이 둘 다와 상호 작용할 수 있는지 모르겠다.

0

나는 완벽한 방법을 찾았습니다. 매니페스트에서 테마를 Theme.Dialog로 변경하고 startActivityForResult로 액티비티를 호출하면 루트 액티비티가 그대로 유지되며 새 액티비티가 맨 위에 표시되며 멋진 투명성도 있습니다.