I'am using Fragment which is an instance of Fragment and not of DialogFragment.
I did google most of the search result shows how to use DialogFragment to have DatePicker.
which isn't working in my case because of type mismatch of Fragment and DialogFragment
Any example or idea would be helpful
Here is the Fragment Java Code
public class CreateReportFragment extends Fragment {
public CreateReportFragment(){}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
rootView = inflater.inflate(R.layout.activity_create_report, container, false);
initViews();
return rootView;
}
private void initViews()
{
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
editTextDate.setText(new StringBuilder()
// Month is 0 based, just add 1
.append(year)
.append("-")
.append(month + 1)
.append("-").append(day));
buttonDate = (Button)rootView.findViewById(R.id.buttonDate);
}
How to implement DatePicker in Fragment?
. . . which isn't working in my case because of type mismatch of Fragment and DialogFragment
A DialogFragment
IS-A Fragment
because it extends Fragment.Therefore, you can use a DialogFragment anywhere you would a Fragment.
Use a DialogFragment
If i am guessing right you want to show a DatePicker on click of buttonDate
http://developer.android.com/guide/topics/ui/controls/pickers.html
On Button click
DialogFragment picker = new DatePickerFragment();
picker.show(getFragmentManager(), "datePicker");
DatePickerFragment.java
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@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 month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());
}
}
How to implement DatePicker in Fragment?
The same way you would "implement" a TextView
in a Fragment
: have onCreateView()
return a View
that is or contains a DatePicker
. For example, you might have a layout file that contains a DatePicker
widget, and have onCreateView()
inflate that layout.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With