0
DatePickerを実装したfragmentdialogから、通常のフラグメントにデータを送信しようとしています。私はインターフェイスを使ってこれをやっています。 エラーが発生していて、何が間違っているのかわかりません。エラーは、onClickメソッドのsetDatePickerEventsで「解決できません」です。Android - DialogFragmentからFragmentへのデータ
FirstFragment:
public class FirstFragment extends Fragment implements
DateFragment.DatePickerEvent {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_first, container, false);
EditText date= (EditText) rootView.findViewById(R.id.datePicker);
date.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment picker = new DatePickerFragment();
picker.setDatePickerEvents(FirstFragment.this);
picker.show(getFragmentManager(), "datePicker");
}
});
return rootView;
}
@Override
public void onDateSeletcted(String date) {
String sDate= date;
EditText dp = (EditText) getView().findViewById(R.id.datePicker);
dp.setText(sDate);
}
}
DatePickerFragment:
public class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
int year, month, day;
public interface DatePickerEvent{
void onDateSeletcted(String date);
}
DatePickerEvent dpe;
public void setDatePickerEvents(DatePickerEvent dpe){
this.dpe = dpe;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
String formattedDate = sdf.format(c.getTime());
dpe.onDateSeletcted(formattedDate);
}
}
にインスタンス化ラインを変更します。これはエラーを解決しません – John