Android 在RecyclerView上获取空引用

Android 在RecyclerView上获取空引用,android,android-recyclerview,Android,Android Recyclerview,我试图在一个片段中使用RecyclerView及其适配器。每当我试图打开该片段时,应用程序就会崩溃并引发异常: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget RecyclerView$Adapter)' on a null object reference MyActivity.java: 公共类上层扩展。。。{

我试图在一个片段中使用RecyclerView及其适配器。每当我试图打开该片段时,应用程序就会崩溃并引发异常:

Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget RecyclerView$Adapter)' on a null object reference
MyActivity.java:

公共类上层扩展。。。{ ... 公共静态内部类扩展了CorrectedPreferenceFragment{ 私有回收视图组公共回收视图; 私人观点v; ... @凌驾 公共视图OnCreateViewLayoutFlater充气机、视图组容器、捆绑包保存状态{ v=充气器。充气器。布局。接收者_公共_组,容器,错误; groupsInCommonRecyclerView=RecyclerView v.findViewByIdR.id.recycler\u视图; groupsInCommonRecyclerView.SetLayoutManagerNewLinearLayoutManagerTargetActivity; ArrayList commonGroups=初始化组Common; GroupsInCommonRecycleViewAdapter GroupsInCommonRecycleViewAdapter=新组InCommonRecycleViewAdapterGetContext,commonGroups; GroupsInCommonRecycleView.setAdaptergroupsInCommonRecycleViewAdapter; 返回v; } } 收件人_common_groups.xml:

getActivity有时返回null。所以我建议您在片段中重写onAttach以获取上下文。 这意味着您的布局管理器由于空上下文而为空,并且未提供给recyclerview。因此,在设置适配器时,它会引发异常。 尝试此操作并发布工作状态的更新

public class upperClass extends ... {
    ...
    public static innerClass extends CorrectedPreferenceFragment ... {
         private RecyclerView  groupsInCommonRecyclerView;
         private View          v;   
         private Context c;
    @Override
    public void onAttach(Context c) {
        super.onAttach(c);
        this.c = c; //this is one of the best way to get context of the activity to which the particular activity is associated with
      }
  @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          v = inflater.inflate(R.layout.recipient_common_groups,     container, false);

          groupsInCommonRecyclerView = (RecyclerView) v.findViewById(R.id.recycler_view);

       LinearLayoutManager lm = new LinearLayoutManager(c);
          lm.setOrientation(LinearLayoutManager.VERTICAL);
          groupsInCommonRecyclerView.setLayoutManager(lm);
          ArrayList<GroupsInCommonItem> commonGroups = initializeGroupsInCommon();
          GroupsInCommonRecycleViewAdapter groupsInCommonRecycleViewAdapter = new GroupsInCommonRecycleViewAdapter(c, commonGroups);

          groupsInCommonRecyclerView.setAdapter(groupsInCommonRecycleViewAdapter);

          return v;
        }    
}


似乎groupsInCommonRecyclerView在设置布局管理器之后和设置适配器之前的某个地方变为空。从发布的代码中看不明显,因此请尝试使用调试器一步一步地检查代码。

我认为您没有使用findViewById在活动中绑定您的recyclerview。。。
请检查。

在InitializeGroupsCommon方法中您做了什么?为什么要将内部类声明为静态?用伪数据填充列表。@Vivekmishrate静态关键字是罪魁祸首