我不确定如何说出这个问题,所以我在这方面做得最好。所以我在我的Activity中创建DatePicker
时遇到问题。这是给我一个错误的代码:
EditEventActivity.java
DateDialogFragment frag = DateDialogFragment.newInstance(this, new
DateDialogFragmentListener() {
@Override
public void updateChangeDate(int year, int month, int day) {
// TODO Auto-generated method stub
}
}, sYear, sMonth, sDay);
我在那里的newInstance()
方法是什么给了我错误。错误是这样的:
The method newInstance(Context, AddEventActivity.DateDialogFragmentListener, int, int, int) in the type DateDialogFragment is not applicable for the arguments (EditEventActivity, new EditEventActivity.DateDialogFragmentListener(){}, int, int, int)
现在DateDialogFragment
位于自己的文件中。我不认为我需要发布。就是这样。但我的界面在AddEventActivity.java
。现在这是我很困惑的事情。来自DateDialogFragment的静态方法newInstance()
需要DateDialogFragmentListener
而非AddEventActivity.DateDialogFragmentListener
。所以我认为这就是问题所在。但话说回来,我不确定,这是我需要帮助理解的。提前谢谢你。
实际上。我还想知道我可能还包括newInstance()
方法:
DateDialogFragment.java
public static DateDialogFragment newInstance(Context context, DateDialogFragmentListener
listener, int year, int month, int day) {
DateDialogFragment dialog = new DateDialogFragment();
mContext = context;
mListener = listener;
mYear = year;
mMonth = month;
mDay = day;
Bundle args = new Bundle();
args.putString("title", "Set Date");
dialog.setArguments(args);
return dialog;
}
答案 0 :(得分:3)
您向newInstance(...)
方法传递了太多参数。只传递sYear
,sMonth
和sDay
一次而不是两次。
修改强> 你在这里有两个具有相同简单名称的类,但它们是不同的类,因此是不同的类型。只需传递正确类的实例。
DateDialogFragment frag = DateDialogFragment.newInstance(
this,
new AddEventActivity.DateDialogFragmentListener() {
@Override
public void updateChangeDate(int year, int month, int day) {
// TODO Auto-generated method stub
}
}, sYear, sMonth, sDay);
..如果您需要传递newInstance()
,请更正EditEventActivity.DateDialogFragmentListener
方法的签名。
答案 1 :(得分:1)
假设EditEventActivity.DateDialogFragmentListener
扩展AddEventActivity.DateDialogFragmentListener
,您的newInstance
方法在听众之后需要3 int
秒,并且您传递了6 int
s - 您可能意味着:
DateDialogFragment frag = DateDialogFragment.newInstance(this, new DateDialogFragmentListener() {
@Override
public void updateChangeDate(int year, int month, int day) {
// TODO Auto-generated method stub
}
}, sYear, sMonth, sDay); //removed the last 3 arguments
修改强>
在您进行修改后,请回到我的第一条评论:EditEventActivity.DateDialogFragmentListener
是否会延长AddEventActivity.DateDialogFragmentListener
?