如何从另一个活动中调用TabActivity getTabHost()?避免NullPointerException

时间:2011-09-03 11:03:53

标签: android tabs

我在学习android的过程中。 想要实现标签式浏览功能;为此,我有以下活动

public class CustomList extends ListActivity {
....

and inside this (and other activities I want to put the tabs)

for example:
Resources res = getResources();

   **TabActivity ta = new TabActivity();**
        TabHost host = **ta.getTabHost();**  // this line returns **NullPointerException**

        host.addTab(host.newTabSpec("first")
                .setIndicator("First")
                .setContent(new Intent(this, First.class)));
These lines are included inside OnCreate().

可能最好是使用制表符定义进行单独的活动,并在其他所有活动中调用它。但是,我不知道该怎么做。

请提出解决此问题的建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你想要的是在一个标签中有多个活动。

为了做到这一点,您必须首先创建一个扩展TabActivity的Activity,并使用扩展TabGroupActivity的活动初始化其选项卡。

public class BaseActivity extends TabActivity {

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

  addTab("home",home_tab,tab_sales_icons,new Intent(this, TabGroupSalesActivity_.class));
  }
}

public class TabGroupSalesActivity extends TabGroupActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //Start the first Activity of the group
  Intent newIntent = new Intent(this, Sales_.class);
  newIntent.putExtra("XMLObject",xml);
  startChildActivity(newIntent);
  }
}

以下是有关how to have multiple activities in a TabActivity

的更多信息的链接