我试图添加一个包含TabLayout视图的片段,但是我一直收到错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.design.widget.TabLayout$Tab android.support.design.widget.TabLayout.newTab()' on a null object reference
at ca.rev.revcore.MainActivity.onCreate(MainActivity.java:76)这就是我要添加的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rev_tablayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/RevStyle_PlaceNewBagBttn">
<android.support.design.widget.TabItem
android:id="@+id/tabItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab1" />
</android.support.design.widget.TabLayout>我就是这么加进去的:
TabLayout tabLayout = (TabLayout) findViewById(R.id.rev_tablayout);
tabLayout.addTab(tabLayout.newTab().setText("Upload"));
tabLayout.addTab(tabLayout.newTab().setText("Pics"));
tabLayout.addTab(tabLayout.newTab().setText("Vids"));
tabLayout.addTab(tabLayout.newTab().setText("Papers"));
tabLayout.getTabAt(0).setIcon(R.drawable.ic_publish_black_24dp);
tabLayout.getTabAt(1).setIcon(R.drawable.ic_menu_camera);
tabLayout.getTabAt(2).setIcon(R.drawable.ic_videocam_black_24dp);
tabLayout.getTabAt(3).setIcon(R.drawable.ic_airplay_black_24dp);我错过了什么?
维伦湿透了我的身体。
发布于 2017-07-14 05:56:59
如果你在使用片段。变化
TabLayout tabLayout = (TabLayout) findViewById(R.id.rev_tablayout);至
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.rev_tablayout);view是在onCreateView()方法中膨胀布局文件和返回视图的对象。
发布于 2017-07-14 06:00:13
如果您正在使用片段,则使用。在oncreate视图中绑定这样的控件,在该视图中膨胀布局
View rootView = inflater.inflate(R.layout.fragment_, container, false);
TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tablayout);发布于 2017-07-14 06:06:49
在片段中覆盖onCreateView()方法,并使用LayoutInflater类对象并通过传递将嵌入框架的活动的ViewGroup论证来膨胀片段布局。
TabLayout tabLayout = (TabLayout) your_View_OBJ.findViewById(R.id.rev_tablayout);Demo
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.your_xml_name, container, false);
TabLayout tabLayout = (TabLayout)rootView.findViewById(R.id.rev_tablayout);
return rootView;
}https://stackoverflow.com/questions/45095613
复制相似问题