2011-11-11 5 views
1

내 애플리케이션에 사용자 정의 탭을 만들었습니다 (TabHostTabWidget 사용). 그러나 내 TabActivity에서 현재 선택되어있는 Activity의 메소드를 호출하려고합니다. 여기 내가 탭 표시 줄 초기화 방법의 샘플입니다Android 탭 표시 줄 : 현재 탭 활동에 액세스하십시오.

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tabbar); 

     TabHost tabHost = getTabHost(); 
     Intent content; 
     Button tabView; 
     TabSpec tab; 

     content = new Intent(this, Test1.class); 
     tabView = new Button(getApplicationContext()); 
     tabView.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_tableft_selector)); 
     tabView.setText("Test1"); 
     tabView.setTypeface(font); 
     tabView.setTextColor(Color.WHITE); 
     tabView.setPadding(0, 2, 0, 0); 
     tab = tabHost.newTabSpec("test1").setIndicator(tabView).setContent(content); 
     tabHost.addTab(tab); 

     ... 
    } 

내 문제는 내 TabActivity과 3 개 탭에서 내가 LocationUpdates을 수신 할 것입니다,하지만 난 위치 업데이트를 제공하기 전에 몇 가지 유효성 검사를 할 필요가 탭의 Activity.
내가 원하는 것은 TabActivity에 위치 업데이트를 받고, 처리 한 다음 현재 탭 Activity에서 몇 가지 메소드를 호출하지만 tabHost에서 액세스 할 수 없습니다. 이것을 할 수있는 방법이 있습니까?

답변

1

모든 활동 인 경우 TabActivity가 ActivityGroup을 확장하므로 ActivityGroup 항목을 사용할 수 있습니다. 충돌을 피하거나 수표를하기 위해 모든 액티비티가 구현하는 위치 인터페이스 또는 무언가를 정의해야합니다. 당신은 너무 멀리 아직 함께 당신이 tabactivity 및 activitygroup이

LocalActivityManager m = getLocalActivityManager(); 
((LocationInterface)m.getCurrentActivity()).sendLocation(); 
+0

덕분에 사용되지 않습니다으로, 호환성 라이브러리를 사용하여 조각을 사용하는 것이 좋습니다, 내가 이번 주를 시도 할 것이다되지 않은 경우 또한 당신은 내가 필요한대로 작동하는 경우 알려 :) – ffleandro

+0

그것은 내가 필요로했던 정확하게 일했다 :) 감사 형제. Fragments API를 사용하여 TabActivity를 구현하는 데 유용한 자습서를 알고 있습니까? – ffleandro

+0

http://android.codeandmagic.org/2011/07/android-tabs-with-fragments/ 시도해 보았지만 그것을 살펴본 후에 탭 호스트가 없어도 약간 단순화 할 수 있다고 말합니다. 그냥 단추 등을 사용하면됩니다. 그러나 시작할 좋은 장소. – caguilar187