无法解决方法,为什么? [英] Cannot resolve method, why?

查看:71
本文介绍了无法解决方法,为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无法解析方法setDateListener(DateListener dl).它是公共的,并且在包含该方法的DatePickerFragment.java类的对象上使用它.

The method setDateListener(DateListener dl) cannot be resolved. It is public and I am using it on an object of the class DatePickerFragment.java where the method is contained.

这是称为setDateListener()方法的片段中的onCreateView()方法:

Here is the onCreateView() method in the fragment where the setDateListener() method is called:

@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 类(导入已被省略):

Here is the DatePickerFragment.java class (imports have been omitted):

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;
    }
}

推荐答案

无法解析方法setDateListener(DateListener dl).它是 公共,我在班级的对象上使用它 包含该方法的DatePickerFragment.java.

The method setDateListener(DateListener dl) cannot be resolved. It is public and I am using it on an object of the class DatePickerFragment.java where the method is contained.

将引用分配给超级类型时发生的

. DatePickerFragmentDialogFragment,相反,DialogFragment不是DatePickerFragment

that happens when you assign the reference to the super type. DatePickerFragment is a DialogFragment, conversely a DialogFragment is not a DatePickerFragment

这篇关于无法解决方法,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆