【发布时间】:2013-10-05 10:26:55
【问题描述】:
我对关于默认构造函数的错误消息有点困惑。
我有两个班级 MainActivity 和 ResultDialog。 MainActivity 中的一些方法会创建一个新对话框并将 2 个字符串传递给 ResultDialog 中的自定义构造函数。
ResultDialog 扩展 DialogFragment。所以我定义了自己的构造函数,但是当出现错误时,我只是创建了一个无参数构造函数,但仍然不允许这样做。
我已经在 SO 上搜索了 abit,但答案有点解释说屏幕旋转可能会破坏并使用默认构造函数重新创建屏幕,但仍然没有回答我如何解决这个问题。
错误是避免片段中的非默认构造函数:使用默认值 构造函数加上 Fragment#setArguments(Bundle) 代替
有人请帮我解决这个问题,我有点困惑。我的ResultDialog 课程的一部分:
public class ResultDialog extends DialogFragment {
private String message;//to hold the message to be displayed
private String title;//for alert dialog title
//constructor for the dialog passing along message to be displayed in the alert dialog
public ResultDialog(String message,String title){
this.message = message;
this.title = title;
}
public ResultDialog(){
//default constructor
}
【问题讨论】:
-
DialogFragment 类是否有默认构造函数。如果不是,您应该显式调用 super(parametes) 作为自定义 ResultDialog 构造函数的第一行。另外,如果不是这种情况,请提供堆栈跟踪。
-
我没有运行程序但想先解决错误,但@Raghunandan 的回答有效
标签: java android android-dialogfragment