TabWidget 空指针异常?

发布于 2024-08-22 10:16:17 字数 1676 浏览 7 评论 0原文

我正在尝试创建一个带有两个选项卡的选项卡小部件来打开两个不同的活动,并编写以下布局来实现此目的,但它给了我一个 NullPointerException 。

我的错误在哪里?

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 
        <TabWidget 
            android:id="@android:id/tabs" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" /> 
        <FrameLayout 
            android:id="@android:id/tabcontent" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"> 
        </FrameLayout> 
    </LinearLayout> 
</TabHost>

在扩展 TabWidget 的 Java 类中,我在 onCreate 方法中包含以下代码:

setContentView(R.layout.more);

TabHost mTabHost = (TabHost) this.findViewById(R.id.tabhost);
mTabHost.setup();

Intent intent;

intent = new Intent().setClass(this, Settings.class);
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(
                        "Calculator", 
                        getResources().getDrawable(R.drawable.tab01)).setContent(intent));

intent = new Intent().setClass(this, Post.class);                
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator(
                        "YouTube", 
                        getResources().getDrawable(R.drawable.tab02)).setContent(intent));

I am trying to create a tab widget with two tabs to open two different activities and written following layout to achieve this but it is giving me a NullPointerException.

Where is my mistake?

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 
        <TabWidget 
            android:id="@android:id/tabs" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" /> 
        <FrameLayout 
            android:id="@android:id/tabcontent" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"> 
        </FrameLayout> 
    </LinearLayout> 
</TabHost>

In the Java class which is extending TabWidget I have the following code in the onCreate method:

setContentView(R.layout.more);

TabHost mTabHost = (TabHost) this.findViewById(R.id.tabhost);
mTabHost.setup();

Intent intent;

intent = new Intent().setClass(this, Settings.class);
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(
                        "Calculator", 
                        getResources().getDrawable(R.drawable.tab01)).setContent(intent));

intent = new Intent().setClass(this, Post.class);                
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator(
                        "YouTube", 
                        getResources().getDrawable(R.drawable.tab02)).setContent(intent));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠佳期 2024-08-29 10:16:17

如果您使用 TabActivity 扩展选项卡类,则必须

使用选项卡相关控件的 id,例如“@android:id/tabhost”,

我使用的是“@+id/tabhost”,这是错误的,但如果通过 Activity 扩展它类很好。

我在布局上遇到的上述问题不会出现...

选项卡教程也有点错误,可以使用以下示例来解决。
示例

if you are extending your tab class using TabActivity then it is must

to use ids of tab related controls like "@android:id/tabhost"

i was using "@+id/tabhost" which is wrong but in case of extending it through Activity class its fine.

and above problem which i was facing on layout will not come...

Tab tutorial was also bit buggy it can be solved using following example.
Example

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文