繁体   English   中英

Android Tabhost错误空指针tabwidget

[英]Android tabhost error null pointer tabwidget

主要活动:

 public class MainActivity extends AppCompatActivity {
    TabHost mTabHost;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mTabHost = (TabHost) findViewById(android.R.id.tabhost);
            setupTab(new TextView(this), "Tab 1");
            setupTab(new TextView(this), "Tab 2");
            setupTab(new TextView(this), "Tab 3");

        }
        private void setupTab(final View view, final String tag) {
            View tabview = createTabView(mTabHost.getContext(), tag);
            TabHost.TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabHost.TabContentFactory() {

                public View createTabContent(String tag) {return view;}
            });
            mTabHost.addTab(setContent);
        }
        private static View createTabView(final Context context, final String text) {
            View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
            TextView tv = (TextView) view.findViewById(R.id.tabsText);
            tv.setText(text);
            return view;
        }

    }

Activity_main

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android: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>

我正在尝试使用选项卡,以使没有材料设计库的底部导航栏成为可能。 如何解决这个错误? (尝试在空对象引用上调用虚拟方法'void android.widget.TabWidget.setStripEnabled(boolean)')

您需要调用mTabHost.setup(...);

原因是您的活动没有扩展TabActivity,因此应在TabHost.addTab(...)方法之前调用TabHost.setup(...)。

图片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM