类扩展片段 - 错误说确保类名存在,是公共的,并且具有公共的空构造函数

时间:2013-10-15 06:34:52

标签: android android-fragments fragment

我有一个这样的课程:

class TopicFragment extends Fragment{

public TopicFragment(VO vO) { 
    // some code
    }

}

用户报告应用程序崩溃,日志显示:

 android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.aaa.wert.TopicFragment: make sure class name exists, is public, and has an empty constructor that is public

我已查看此链接,但我无法解决此问题;

Do fragments really need an empty constructor?

Fragment - InstantiationException: no empty Constructor -> Google Maps v2?

请帮助我。

1 个答案:

答案 0 :(得分:1)

只需添加一个没有参数的空构造函数即可。如果您在没有空构造函数的情况下使用XML设置片段,则无法创建它。

public TopicFragment() {
}

我通常也只有空构造函数,并且有一个像这样的方法来实例化参数

public static TopicFragment newInstance(VO vo) {
    TopicFragment fragment = new TopicFragment();
    fragment.setVo(vo);
    return fragment;
}

编辑:正如大家在评论中所说,让你的班级:

public class TopicFragment {
}