繁体   English   中英

Null 在 android 工作室的片段中通过 getActivity() 调用 ActionBar 时的引用

[英]Null reference on ActionBar when calling it via getActivity() within a fragment in android studio

在 Android Studio 中,我试图调用 getActivity().getActionBar() 以仅在特定片段中显示操作栏上的后退按钮。 下面是我的代码:

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
    getActivity().getActionBar().setDisplayShowHomeEnabled(true);
    
    View view=inflater.inflate(R.layout.fragment__two, container, false);
    return view;

}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        requireActivity().onBackPressed();
    }
    return super.onOptionsItemSelected(item);
}

请告诉我我在这里做错了什么。 我只想在这个片段的操作栏中设置返回按钮,帮我弄清楚,谢谢!

好吧,您可以尝试使用以下方法获取 actionBar:

ActionBar actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();

注意:创建视图后执行此操作,即在 onViewCreated() function 中,如:

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    ActionBar actionBar = ((AppCompatActivity) requireActivity()).getSupportActionBar();
}

暂无
暂无

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

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