RecyclerView 空指针异常
RecyclerView nullpointException
每次我尝试在片段中调用 recyclerView
时都会收到此空点异常。
正如您在下面的代码中看到的那样,我已经声明了我的布局管理器。我尝试在 onViewCreated
和 onCreateView
中声明 recyclerView
和 layoutManager
,但仍然出现相同的错误。
这些片段在 viewPager
中,然后每个片段都包含 SwipeRefreshLayout
。如果我只使用一个错误未显示,我有 3 个片段都包含 recyclerView。
private RecyclerView post;
private LinearLayoutManager mLayoutManager;
private SwipeRefreshLayout refreshLayout;
public NearByFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_near_by, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
post = (RecyclerView) getActivity().findViewById(R.id.lvPost);
post.setHasFixedSize(true);
setHasOptionsMenu(true);
mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
post.setLayoutManager(mLayoutManager);
post.setOnScrollListener(new ScrollListener());
refreshLayout = (SwipeRefreshLayout) getActivity().findViewById(R.id.swipe_layout);
refreshLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW);
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshLayout.setRefreshing(false);
}
});
}
如果您的 R.id.lvPost 在 R.layout.fragment_near_by 中。你应该这样做:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_near_by, container, false);
post = (RecyclerView) view.findViewById(R.id.lvPost);
return view;
}
每次我尝试在片段中调用 recyclerView
时都会收到此空点异常。
正如您在下面的代码中看到的那样,我已经声明了我的布局管理器。我尝试在 onViewCreated
和 onCreateView
中声明 recyclerView
和 layoutManager
,但仍然出现相同的错误。
这些片段在 viewPager
中,然后每个片段都包含 SwipeRefreshLayout
。如果我只使用一个错误未显示,我有 3 个片段都包含 recyclerView。
private RecyclerView post;
private LinearLayoutManager mLayoutManager;
private SwipeRefreshLayout refreshLayout;
public NearByFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_near_by, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
post = (RecyclerView) getActivity().findViewById(R.id.lvPost);
post.setHasFixedSize(true);
setHasOptionsMenu(true);
mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
post.setLayoutManager(mLayoutManager);
post.setOnScrollListener(new ScrollListener());
refreshLayout = (SwipeRefreshLayout) getActivity().findViewById(R.id.swipe_layout);
refreshLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW);
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshLayout.setRefreshing(false);
}
});
}
如果您的 R.id.lvPost 在 R.layout.fragment_near_by 中。你应该这样做:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_near_by, container, false);
post = (RecyclerView) view.findViewById(R.id.lvPost);
return view;
}