簡體   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