現在、アクティビティをフラグメントに変換する作業を行っています。アクティビティには、クリックすると日付を選択するための 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));
}
}