java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
今天遇到一個問題 ,在Fragment中使用Recyclerview設置空佈局的時候出現如上問題
出錯代碼
Emptyview = LayoutInflater.from(getContext()).inflate(com.example.yuyi.common_module.R.layout.custom_empty_view, (ViewGroup) recyclerView.getParent(), false); adapter.setEmptyView(Emptyview); Emptyview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { adapter.setEmptyView(com.example.yuyi.common_module.R.layout.loading_view, (ViewGroup) recyclerView.getParent()); new Handler().postDelayed(new Runnable() { @Override public void run() { getFourData(fourid); } }, 1000); } });
問題解決:需要判斷當前getActivity是否爲空
if (getActivity()!=null){ Emptyview = LayoutInflater.from(getActivity()).inflate(com.example.yuyi.common_module.R.layout.custom_empty_view, (ViewGroup) recyclerView.getParent(), false); adapter.setEmptyView(Emptyview); Emptyview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { adapter.setEmptyView(com.example.yuyi.common_module.R.layout.loading_view, (ViewGroup) recyclerView.getParent()); new Handler().postDelayed(new Runnable() { @Override public void run() { getFourData(fourid); } }, 1000); } }); }
原因是因爲在fragment中可能會出現獲取不到getActivity和getContent
加個判斷就行了