在我的布局fragment_do_stuff.xml中,我添加了FloatingActionButton,就像这样
<com.melnykov.fab.FloatingActionButton
android:id="@+id/fabDoStuff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="12dp"
android:layout_marginBottom="12dp"
android:src="@drawable/my_fab"
android:scaleType="centerInside"
fab:fab_colorNormal="@color/fab_color"
fab:fab_colorPressed="@color/fab_color"
fab:fab_colorRipple="@color/my_accent"/>
在我的片段中,我在onCreateView()中夸大了这个视图,如:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_do_stuff, container, false);
mDoStuffFab = (FloatingActionButton)view.findViewById(R.id.fabDoStuff);
return view;
}
在我的onActivityCreated()中,我在这个FAB上设置监听器,如:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
mDoStuffFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doStuff();
}
});
...
}
然而,对fab mDoStuffFab的强制表明它在onCreateView和onActivityCreated中都是null。结果,我的应用程序崩溃了NullPointerException
我缺少什么?
谢谢,
答案 0 :(得分:0)
这是我的错误,findViewById正在寻找一个错误的工厂。