2

現在、アクティビティをフラグメントに変換する作業を行っています。アクティビティには、クリックすると日付を選択するための DialogFragmment を表示する Edittext が含まれます。アクティビティでは、これを呼び出してダイアログを表示するだけです。

@SuppressLint("NewApi")
public void showDatePickerDialog(View v) {
    DatePickerFragment newFragment = new DatePickerFragment(datePickerEditText);
    newFragment.show(getFragmentManager(), "datePicker");
}

ただし、これは Fragment からダイアログを表示するには機能しないようです。「show」メソッドでエラーが発生しました。明確にするために、フラグメントからDialogFragmentを表示する方法を考えていましたか?

これはDialogFragmentのコードです

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

public EditText activity_edittext;

@SuppressLint("ValidFragment")
public DatePickerFragment(EditText edit_text) {
    activity_edittext = edit_text;
}

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

    return new DatePickerDialog(getActivity(), this, year, month, day);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
    activity_edittext.setText(String.valueOf(day ) + "/" +   String.valueOf(month + 1) + "/" + String.valueOf(year));
}

}

4

2 に答える 2