在一个应用程序中创建两个tabhost

时间:2012-11-02 04:24:53

标签: java android android-activity android-tabhost

我正在创建一个Android应用程序,其中我在两个不同的活动中使用两个不同的tabhost。但是当我使用第二个tabhost进入活动时,我无法区分当时和我的应用程序停止。

我的第一项活动中的代码如下:

private TabHost tHost_;
private TabSpec tSpec_;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mypls_shared);
        setTitle("Workout Scheduler");
        tHost_ = (TabHost) findViewById(R.id.tabhost);
        tHost_.setup();
        tSpec_ = tHost_.newTabSpec("tag1");
        tSpec_.setContent(R.id.myTab);
        tSpec_.setIndicator("My Workouts");
        tHost_.addTab(tSpec_);
        tSpec_ = tHost_.newTabSpec("tag2");
        tSpec_.setContent(R.id.shareTab);
        tSpec_.setIndicator("Shared Workouts");
        tHost_.addTab(tSpec_);

    }

在我的xml文件中,tabhost的android id指定如下:

<TabHost
        android:id="@+id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" >

我的第二个文件中的代码如下:

private TabHost tHost_;
private TabSpec tSpec_;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_three_by3);
    setTitle("Workout Scheduler");
    tHost_ = (TabHost) findViewById(R.id.tabhost);
    tHost_.setup();

}

xml文件如下所示:

<TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1" >

然而,当我进入第二个活动时,应用会停止。我知道tabhost必须这样命名:

android:id="@+id/tabhost"

但如果我有2个tabhosts,由R.id.tabhost引用,该怎么办?

1 个答案:

答案 0 :(得分:1)

不要惊慌你几乎做得很好,只需查看并改善你的小错误这个链接: - http://ramscreative.blogspot.in/2012/04/tabs-with-xml-and-displaying-from.html并完成......