Не могу решить метод, почему?

МетодsetDateListener(DateListener dl) не может быть решен. Он является общедоступным, и я использую его для объекта класса DatePickerFragment.java, где содержится метод.

ЗдесьonCreateView() метод во фрагменте, гдеsetDateListener() метод называется:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    mView = inflater.inflate(R.layout.fragment_sign_up_about, container, false);

    mFirstNameEditText = (EditText) mView.findViewById(R.id.sign_up_first_name_edit_text);
    mLastNameEditText = (EditText) mView.findViewById(R.id.sign_up_last_name_edit_text);
    mBirthdayEditText = (EditText) mView.findViewById(R.id.sign_up_birthday_edit_text);
    mContinueButton = (Button) mView.findViewById(R.id.sign_up_continue_2_button);

    mBirthdayEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            datePickerFragment = new DatePickerFragment();
            datePickerFragment.setDateListener(SignUpAboutFragment.this);
            datePickerFragment.show(getFragmentManager(), "datePicker");

        }
    });
}

ЗдесьDatePickerFragment.java класс (импорт был опущен):

public class DatePickerFragment extends DialogFragment
        implements DatePickerDialog.OnDateSetListener {

    private DateListener mCallback;

    public interface DateListener {
        void onDateSelected(String formattedDate);
    }

    @NonNull
    @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);
    }

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        Calendar c = Calendar.getInstance();
        c.set(year, monthOfYear, dayOfMonth);

        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        String formattedDate = sdf.format(c.getTime());
        mCallback.onDateSelected(formattedDate);
    }

    public void setDateListener(DateListener dateListener) {
        mCallback = dateListener;
    }
}
 Tom Finet25 июн. 2016 г., 15:46
Имеет тип DialogFragment
 Raghunandan25 июн. 2016 г., 15:43
Вы реализовали интерфейс вSignUpAboutFragment?
 Tom Finet25 июн. 2016 г., 15:49
Все сделано. Спасибо, парни!
 Tom Finet25 июн. 2016 г., 15:45
нет интерфейса SignUpAboutFragment.
 R. Zagórski25 июн. 2016 г., 15:44
Какой объявленный тип имеетdatePickerFragment?
 Tom Finet25 июн. 2016 г., 16:00
Ну, чувак, мне всего 16 лет, и я самоучка. И не могли бы вы привести меня к примеру, пожалуйста.
 R. Zagórski25 июн. 2016 г., 15:47
Так что проверьте ответ @ Blackbelt
 Marcus Hooper25 июн. 2016 г., 15:50
есть ли причина, по которой вы не используетеDatePickerDialog как это предусмотрено Google. Кроме того, это ужасный способ передачи информации между фрагментом и его родителем. Как только фрагмент будет воссоздан (ротация и т. Д.), Он потеряет слушателя, и у вас будет npe при попытке его вызвать. Вместо этого лучше всего иметь интерфейс на родительском, а затем на дочернем вызовеgetActivity()/getParent() и приведи их к интерфейсу.

Ответы на вопрос(1)

Решение Вопроса

Метод setDateListener (DateListener dl) не может быть разрешен. Он является общедоступным, и я использую его для объекта класса DatePickerFragment.java, где содержится метод.

это происходит, когда вы назначаете ссылку на супер тип.DatePickerFragment этоDialogFragmentи наоборотDialogFragment это неDatePickerFragment

 antonio25 июн. 2016 г., 16:47
Если это решение решило вашу проблему, пометьте его как принятый ответ, чтобы оно могло помочь другим
 Tom Finet25 июн. 2016 г., 15:49
хорошо, спасибо, поэтому я просто изменил тип на DatePickerFragment, и это сработало! Здорово. знак равно

Ваш ответ на вопрос