2010-03-03 2 views
5

다음은 의도 데이터가있는 탭의 예입니다.안드로이드 첫 번째 탭 의도 oncreate는 항상 호출됩니다. 우리는 tab2를 기본 탭으로 설정했습니다.

나는 우리가 탭 다음과 같은 우리의 경우 탭 호스트에 추가 할 때 항상 첫 번째 탭 전화를받을 의도 "List1입니다"의

에서 OnCreate 방법에 관계없이

tabHost.addTab(tabHost.newTabSpec("tab1") 
        .setIndicator("list") 
        .setContent(new Intent(this, List1.class))); 
우리의 현재 탭인지

것을 발견 디버깅하는 동안 경우에도 경우 나는이 문제를 해결하는 방법을 tab2 현재 탭으로 정의합니까?

public class Tabs3 extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final TabHost tabHost = getTabHost(); 

     tabHost.addTab(tabHost.newTabSpec("tab1") 
       .setIndicator("list") 
       .setContent(new Intent(this, List1.class))); 

     tabHost.addTab(tabHost.newTabSpec("tab2") 
       .setIndicator("photo list") 
       .setContent(new Intent(this, List8.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 

     // This tab sets the intent flag so that it is recreated each time 
     // the tab is clicked. 
     tabHost.addTab(tabHost.newTabSpec("tab3") 
       .setIndicator("destroy") 
       .setContent(new Intent(this, Controls2.class) 
         .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 
    } 
} 
+0

그래서, 당신은 모든 탭을 추가 할 수 있지만 첫 번째 탭이 아닌 다른 무언가를 갖고 싶어 기본에 선택, 당신은 List1입니다 활동 당신까지 만들 수 싶지 않아 탭을 클릭하십시오. – synic

+0

네가 맞습니다. –

답변

1

setDefaultTab (1);

은 별도의 활동이 탭 콘텐츠로 사용되는 경우 TabActivity에서 작동하지 않는 것처럼 보입니다. 대신에이 방법의 다음

사용,

tabHost.setCurrentTab (1);

이것은 나뿐만 아니라이 같은 행동을 발견

+2

나는 동일한 문제가 있으며, 이것이 작동하지 않는다. 선택한 탭을 설정하지만 첫 번째 탭의 onCreate는 무엇이든 상관없이 호출됩니다. – typeoneerror

+0

여기에서 같은 오류가 발생하면 현재 탭이 작동하지만 첫 번째 탭인 oncreate가 여전히 호출됩니다. – rnaud

0

"사진 목록"선택 또는 기본 탭으로 (즉 두 번째 탭) ... 설정합니다, 나는 특정 수정이 없습니다. 그러나 나는 해결 방법을 알고있다.

각 탭에 활동을 첨부하는 대신 각 탭에보기를 첨부하십시오. 그런 다음 각보기가 동일한 활동에있을 때 데이터 전달을 매우 쉽게 처리 할 수 ​​있습니다. 또한 인 텐트를 사용하여 정보를 전달할 필요가 없습니다. 또한 뷰를 필요에 따라 그리고보다 세밀하게 생성하여 뷰를 생성 (또는 팽창) 할 수 있습니다.

행운을 빌어 요, -scott

관련 문제