2011-11-11 86 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

如果它们都是活动,那么你可以使用ActivityGroup的东西,因为TabActivity扩展了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/给我一个尝试,虽然通过它后,我会说你可以简化它没有一个tabhost一点。只是使用按钮或其他东西。但一个好地方开始。 – caguilar187