片段中 RecyclerView 的 NullPointerException
Posted
技术标签:
【中文标题】片段中 RecyclerView 的 NullPointerException【英文标题】:NullPointerException for RecyclerView In fragment 【发布时间】:2015-05-14 09:30:23 【问题描述】:尝试使用片段内的 recyclerview 实现卡片列表。每次我尝试打开片段时,它都会崩溃。我正在关注本教程https://developer.android.com/training/material/lists-cards.html#Dependencies 和这个http://code.tutsplus.com/tutorials/getting-started-with-recyclerview-and-cardview-on-android--cms-23465
Logcat 崩溃的地方。
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)”circles_tab.xml sn-p
<android.support.v7.widget.RecyclerView
android:id="@+id/circleList"
android:layout_
android:layout_
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="12dp"/>
圆圈片段
public class CirclesFragment extends Fragment
public ArrayList<String> circles = new ArrayList<String>();
public CharSequence[] circlesList;
public String[] circlesArray = new String[circles.size()];
private List<Person> persons;
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
ButtonFloat FAB;
Dialog dialog;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View v =inflater.inflate(R.layout.circles_tab,container,false);
// Create Cards list
mRecyclerView = (RecyclerView)getActivity().findViewById(R.id.circleList);
mRecyclerView.setHasFixedSize(false);
mLayoutManager = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mLayoutManager);
initializeData();
mAdapter = new RVAdapter(persons);
mRecyclerView.setAdapter(mAdapter);
return v;
private void initializeData()
persons = new ArrayList<>();
persons.add(new Person("Peter Parker", R.drawable.logo));
persons.add(new Person("Miles Morales",R.drawable.logo));
persons.add(new Person("Oliver Queen", R.drawable.logo));
这个话题有很多类似的问题,但大部分都没有解决。任何帮助将不胜感激。
谢谢大家
【问题讨论】:
【参考方案1】:改变
mRecyclerView = (RecyclerView)getActivity().findViewById(R.id.circleList);
到
mRecyclerView = (RecyclerView)v.findViewById(R.id.circleList);
【讨论】:
以上是关于片段中 RecyclerView 的 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
片段中 RecyclerView 的 NullPointerException
片段中的recyclerview的“RecyclerView:没有附加适配器;跳过布局”[重复]
Android:RecyclerView 不显示片段中的列表项