【发布时间】:2015-04-24 18:28:04
【问题描述】:
我在我的应用程序中使用 RecyclerView。我的应用程序因以下错误而崩溃
java.lang.NullPointerException: 尝试调用虚拟方法 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget. RecyclerView$State, int, int)' 在空对象引用上
在 stackoverflow 上搜索时,我发现这个错误通常是在未添加 layoutmanager 时出现的。但是我已经添加了布局管理器。请帮我找出导致此崩溃的原因。
编辑 - 使用 Recyclerview 的片段代码
public class FeedFragment extends Fragment implements HJAppConstants {
private RecyclerView mRecyclerView;
private FeedRecyclerAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.hj_feed_layout, null);
mRecyclerView = (RecyclerView) view
.findViewById(R.id.feeds_recycler_view);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LinearLayoutManager layoutManager = new LinearLayoutManager(
getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new FeedRecyclerAdapter();
mRecyclerView.setAdapter(mAdapter);
addData();
}
/**
* Adds static data
*/
private void addData() {
ArrayList<HJFeedItemObject> itemObjs = new ArrayList<HJFeedItemObject>();
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PHOTO,
"potala_palace.jpg", "This is an article about Potala Palace",
"Thu 7, 07:45pm", new HJUserObject("Umesh", "")));
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PRODUCT, "pokhara.jpg",
"A beautiful place to visit - Pokhara ", "Thu 7, 07:45pm",
new HJUserObject("Umesh", "")));
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_ARTICLE, "patan.jpg",
"A Tourist attraction - Patan", "Thu 7, 07:45pm",
new HJUserObject("Umesh", "")));
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PHOTO,
"potala_palace.jpg", "This is an article about Potala Palace",
"Thu 7, 07:45pm", new HJUserObject("Umesh", "")));
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PRODUCT, "pokhara.jpg",
"A beautiful place to visit - Pokhara ", "Thu 7, 07:45pm",
new HJUserObject("Umesh", "")));
itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_ARTICLE, "patan.jpg",
"A Tourist attraction - Patan", "Thu 7, 07:45pm",
new HJUserObject("Umesh", "")));
mAdapter.addData(itemObjs);
}
【问题讨论】:
-
显示代码没有它没有任何帮助
-
我已经发布了我的代码
-
我认为这是一个片段,因此将代码从 onActivityCreated 移动到 onViewCreated 应该可以解决问题
-
我将内容移动到 onViewCreated 但仍然遇到同样的问题。
-
你是把onActivityCreated的代码移到onViewCreated还是直接放到onCreateView,onActivityCreated只是告诉fragment这个activity是用自己的onCreate完成的,并不代表fragment已经创建还没有。
标签: android android-recyclerview