2012-11-19 2 views
1

1 주일 동안이 문제가 발생했습니다.
나는 각 탭에 MainActivity extends TabActivity과 A, B 두 가지 활동을 가지고 있습니다.
이제 액티비티 A의 버튼을 눌러 현재 페이지를 액티비티 B의 탭으로 설정하려고합니다
MainActivity을 제외한 setCurrentTab 메서드는 사용할 수 없습니다. 이 기능을 작동하게하려면 어떻게해야합니까?탭 액티비티에서 setCurrentTab 메서드를 사용하는 방법은 무엇입니까?

public class AActivity extends Activity{ 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.a_layout); 
     Button b = (button)findViewById(R.id.bt); 
     b.setOnClickListener(this); 
    } 
    public void onClick(View v) { 
     tabHost.setCurrentTab(1); 
     //Can't work here 
    } 
} 

+1

는 onTabChanged \t \t \t \t \t \t \t 공공 무효 tabHost.setOnTabChangedListener (새 OnTabChangeListener() \t \t \t { \t (문자열 TABID) \t \t \t \t {} –

답변

5

public class MainActivity extends TabActivity

public TabHost tabHost; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Resources res = getResources(); 
    tabHost = getTabHost(); 
    TabHost.TabSpec spec; 
    Intent intent; 
    intent = new Intent().setClass(this, StartActivity.class); 
    spec = tabHost.newTabSpec("tab1").setIndicator("A",res.getDrawable(R.drawable.start)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, WeatherActivity.class); 
    spec = tabHost.newTabSpec("tab2").setIndicator("B",res.getDrawable(R.drawable.weather)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(0); 

} 

다음 변경을 시도해보십시오

주요 활동에서 :

  1. 가 tabHost 변수 정적을 확인합니다.

    private static TabHost tabHost;

  2. 현재 탭 호스트를 가져 오는 새로운 기능을 추가하십시오.

    AActivity에서 public static TabHost getCurrentTabHost(){ return tabHost; }

  3. , 다음과 같이 사용하여 필요한 경우, 당신은 널 체크 갈 수

    MainActivity.getCurrentTabHost().setCurrentTab(1);

.

+0

작동을 사용하려고 !!!! 감사합니다. 너무 많이 !!!!! TT – Kooper

+0

다른 사람들에게도 도움이 될만한 답변이 있으면 –

+0

OK! 완료했습니다^_^ – Kooper

관련 문제