2

我正在开发一个 Android 应用程序,但在设计布局时遇到问题:

我在片段中有这段代码:

DatePickerDialog dialog = 
     DatePickerDialog(getActivity(), mDateSetListener, mYear, mMonth, mDay);

我得到这个编译器错误:

The method DatePickerDialog(FragmentActivity, DatePickerDialog.OnDateSetListener, int, int, int) is undefined for the type UserProfileFragment  UserProfileFragment.java    

如何使用DatePickerDialog片段内部?

顺便说一句,“父”活动扩展SlidingFragmentActivity

4

2 回答 2

4

你错过了new关键字

DatePickerDialog dialog = new
     DatePickerDialog(getActivity(), mDateSetListener, mYear, mMonth, mDay);
于 2013-07-19T10:18:52.590 回答
1

DatePickerFragment我认为使用(aka DatePickerDialogwithin Fragment) 并将其添加到FragmentManager(see getSupportFragmentManager())会更正确

像这样,您可以在显示旋转中幸存下来(请参阅防止在 Android 中的屏幕旋转上解除对话框

片段本身

public static class DatePickerFragment extends DialogFragment
                            implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
    }
}

显示 DatePickerFragment 的代码

DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");

不要忘记更改extends Activityextends FragmentActivity

于 2013-07-19T10:41:41.190 回答