为什么我在这段代码中得到NullPointerException?

时间:2015-08-03 17:08:26

标签: java android

我在下面的片段膨胀中得到NullPointerException。

public View onCreateView(LayoutInflater inf, ViewGroup parent, Bundle savedInstanceState) {
    View v =  inf.inflate(R.layout.fragment_featured, parent, false);

    CardView cardView = (CardView) v.findViewById(R.id.cardView1);
    cardView.setOnCardClickListener(this); //Error in this row!
    cardView.setItemSpace(Utils.convertDpToPixelInt(getActivity(),20));

    MyCardAdapter adapter = new MyCardAdapter(getActivity());
    adapter.addAll(initData());
    cardView.setAdapter(adapter);
    FragmentManager manager = getActivity().getSupportFragmentManager();
    frag = new TestFragment();
    manager.beginTransaction().add(R.id.contentView, frag).commit();

    return v;
}

3 个答案:

答案 0 :(得分:1)

如果单击时显示null,则表示该视图中不存在该ID,因此您可能为该片段填充了错误的布局。

答案 1 :(得分:0)

当你从不存在的java代码指向xml文件中的视图id时,会发生这种类型的错误。解决此错误的最简单方法,只需将java代码中的此id和xml文件中的相应id重命名为其他内容即可。这肯定会对你有帮助。

答案 2 :(得分:0)

最有可能在这一行:

"@

cardView为null,表示此行:

cardView.setOnCardClickListener(this); //Error in this row!

R.id.cardView1要么不存在,要么拼错了cardView1。

发布视图的xml代码。