问题描述
无法解析方法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;
}
}
推荐答案
将引用分配给超级类型时发生的
. DatePickerFragment
是DialogFragment
,相反,DialogFragment
不是DatePickerFragment
that happens when you assign the reference to the super type. DatePickerFragment
is a DialogFragment
, conversely a DialogFragment
is not a DatePickerFragment
这篇关于无法解决方法,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!