I am following the android tutorials on DatePickerDialog. I am able to display the datepickerdialog and set the selected date. The way I a msetting the selected date, is by creating a static instance of the EditTextview and accessing it from the DatePickerFragment class. Is this the right way to set the selected date?
public class NewAssignment extends FragmentActivity {
public static EditText textViewDatePicker; //static
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.new_assignment);
textViewDatePicker= (EditText) findViewById(R.id.datePicker);
}
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
public static 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);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
NewAssignment.textViewDatePicker.setText("year: "+year+ "month: "+month+ "day: "+day);
}
}
Actually, you can create and show DatePickerDialog in your NewAssignment Activity. DataPickerFragment is redurant in this case. Also you can assign OnDateSetListener to your Activity. It can be like this:
public class NewAssignment extends FragmentActivity implements
DatePickerDialog.OnDateSetListener {
private EditText textViewDatePicker;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewDatePicker = (EditText) findViewById(R.id.angle_value);
showDatePickerDialog();
}
public void showDatePickerDialog() {
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
DatePickerDialog datePickerDialog = new DatePickerDialog(this, this, year, month, day);
datePickerDialog.show();
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
textViewDatePicker.setText("year: " + year + "month: " + monthOfYear + "day: " + dayOfMonth);
}
}