【发布时间】:2015-03-31 17:22:23
【问题描述】:
我在我的活动中使用了一个类来创建一个日期选择器对话框,它一直在工作,直到我迁移到 android studio。 这是课程:
class StartDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// year, month, day από το onCreate
DatePickerDialog dialog = new DatePickerDialog(Add_Expense.this, this, year, month, day);
//DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth);
return dialog;
}
@Override
public void onDateSet(DatePicker view, int year, int month,``
int day) {
processDate(year, month, day);
}
private void processDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, day);
int day_ofWeeks = cal.get(Calendar.DAY_OF_WEEK);
showDate(year, month, day, day_ofWeeks);
}
}
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new StartDatePicker();
newFragment.show(getFragmentManager(), "start_date_picker");
}
StartDatePicker 类现在引发错误:该片段类应该是公共的。在我将它声明为 public 之后,它会引发另一个错误:这个片段内部类应该是静态的。 我不想将其声明为静态,因为 private void showDate(int year, int month, int day, int day_ofWeek) 不起作用。
提前谢谢你。
【问题讨论】:
-
@Apurva 您对这个问题的回答如何?您是否阅读过 OP 面临的错误?
-
目前看来 Apurva 的答案工作正常......
-
该答案与您遇到的
public或static类错误无关。它只是促进切换到另一种弹出对话框的方式,完全放弃问题。虽然这可能对你有用,但它使这个问题对将来的参考毫无用处。 -
showDate() 定义在哪里?
-
@nPn showDatePickerDialog 是通过 xml 从按钮调用的。