TextView EditText , DatePicker
public class ProfileDetailActivity extends ActionBarActivity {
ImageButton birthdate_selector;
TextView user_birth_date;
Context mContext;
Calendar calendar;
SimpleDateFormat format;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = ProfileDetailActivity.this;
setContentView(R.layout.fragment_profile_edit);
birthdate_selector = (ImageButton) findViewById(R.id.birthdate_selector);
user_birth_date = (TextView) findViewById(R.id.user_birth_date);
birthdate_selector.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
});
}
@SuppressLint({ "ValidFragment", "SimpleDateFormat" })
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int monthInt = 0, year = 0, month = 0, day = 0;
String[] separated = intent.getStringExtra("birth_date").split(" ");
calendar = Calendar.getInstance();
try {
calendar.setTime(new SimpleDateFormat("MMM").parse(separated[1]));
monthInt = calendar.get(Calendar.MONTH);
year = Integer.parseInt(separated[3]);
month = monthInt;
day = Integer.parseInt(separated[0]);
} catch (Exception e) {
e.printStackTrace();
}
if (Config.isDebugEnabled) {
Log.e("Date in set:", "day: " + day + " month : " + month + " year: " + year);
}
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
final Calendar c = Calendar.getInstance();
int yy = c.get(Calendar.YEAR);
int mm = c.get(Calendar.MONTH);
int dd = c.get(Calendar.DAY_OF_MONTH);
format = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date1 = null;
java.util.Date date2 = null;
try {
date1 = format.parse(year + "-" + (month + 1) + "-" + day);
date2 = format.parse(yy + "-" + mm + "-" + dd);
} catch (ParseException e) {
e.printStackTrace();
}
int diffInDays = (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24));
int diffInYears = diffInDays / 365;
if (type.equals("parent")) {
if (diffInYears < 15) {
user_birth_date.setError("Please enter valid birthdate .");
user_birth_date.setText(null);
} else {
format = new SimpleDateFormat("d");
calendar = new GregorianCalendar(year, month, day);
format = new SimpleDateFormat("d MMM , yyyy");
view_date = format.format(calendar.getTime());
user_birth_date.setText(view_date);
}
}
if (type.equals("student")) {
if (diffInYears < 3) {
user_birth_date.setError("Please enter valid birthdate .");
user_birth_date.setText(null);
} else {
format = new SimpleDateFormat("d");
calendar = new GregorianCalendar(year, month, day);
format = new SimpleDateFormat("d MMM , yyyy");
view_date = format.format(calendar.getTime());
user_birth_date.setText(view_date);
}
}
}
}
}