Android 片段视图按主视图的id查找视图

Android 片段视图按主视图的id查找视图,android,android-fragments,Android,Android Fragments,我有一个带有片段视图的MainActivity。 在main活动中,我加载此布局: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.MainLayout); } 在主布局中,是一个id为“fab”的浮动操作按钮 在片段视图类中,我加载片段视图布局如下: @Override publ

我有一个带有片段视图的
MainActivity
。 在
main活动中
,我加载此布局:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.MainLayout);
}
在主布局中,是一个id为“fab”的浮动操作按钮

在片段视图类中,我加载片段视图布局如下:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

       FragementView = inflater.inflate(R.layout.FragmentViewLayout, container, false);
       FloatingActionButton fab = (FloatingActionButton) FragementView .findViewById(R.id.fab);

       return FragementView;
    }
现在我想进入片段视图类,fab(按id查找) 但这将是一个空对象


我的错误在哪里?

您的
FloatActionButton
位于
main布局中
布局不是
FragmentViewLayout
布局。
因此,您应该在
活动中检索它

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.MainLayout);
  ...
  FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
}

在您的
FragmentViewLayout

FragmentViewLayout.xml

<RelativeLayout 
...

//include FloatingActionButton here
...
/>

如果需要获取片段中活动的视图,请使用
getActivity()

报价文件

具体而言,片段可以使用getActivity()访问活动实例,并轻松执行任务,例如在活动布局中查找视图:

FloatingActionButton fab = (FloatingActionButton) getActivity().findViewById(R.id.fab);

FragementView是一个视图?是的,这是一个视图