[英]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.