android.content.Context.getSystemService(java.lang.String)' on a null object reference

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

加個判斷就行了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章