Reputation: 21
Solution not found it yet, I have spent a few hours to this challenge. How can I get a date to see how when you press the "today" button?
Want to get a date that is displayed when you press the button "today". And, we believe the process of trying to add information to the screen display of the specified date.
DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int pickyear, int monthOfYear,
int dayOfMonth) {
}
}, year, month-1, day);
// Dialog(Positive Button)
dpdialog.setButton(
DialogInterface.BUTTON_POSITIVE,
"set",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Positive Button
// How to get the date set
String day = dpdialog.getDayOfMonth();
String month = dpdialog.getMonth() + 1;
String year = dpdialog.getYear();
}
}
);
// Dialog (Negative Button)
dpdialog.setButton(
DialogInterface.BUTTON_NEGATIVE,
"cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Negative Button
}
}
);
// Dialog(Neutral Button)
dpdialog.setButton(
DialogInterface.BUTTON_NEUTRAL,
"today",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Neutral Button
}
}
);
dpdialog.show();
Upvotes: 2
Views: 2226
Reputation: 2145
//decleration
final static int DATE_DIALOG_ID=1;
EditText dateedt;
String date_selected="";
int currentDay,currentYear,currentMonth,
//onCreate
Calendar calendar=Calendar.getInstance();
currentDay=calendar.get(calendar.DAY_OF_MONTH);
currentYear=calendar.get(calendar.YEAR);
currentMonth=calendar.get(calendar.MONTH)+1;
dateedt=(EditText)findViewById(R.id.dateedt);
dateedt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID);
}
});
//methods
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id)
{
case DATE_DIALOG_ID:
return new DatePickerDialog( this,mDateSetListener,currentYear,currentMonth-1,currentDay);
}
return null;
}
DatePickerDialog.OnDateSetListener mDateSetListener=new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
if(monthOfYear < 10 && !String.valueOf(monthOfYear).contains("0"))
{
if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0"))
{
date_selected = "0"+String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+"0"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth);
}
else
{
date_selected = "0"+String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-0"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth);
}
}
else if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0"))
{
date_selected = String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth);
}
else
{
date_selected = String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth);
}
dateedt.setText(date_selected);
}
};
Upvotes: 1
Reputation: 59168
Variables defined in outer class will be visible from inner class/inline method, so you can do it like this:
private String day;
private String month;
private String year;
DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int pickyear, int monthOfYear, int dayOfMonth) {
// you have the picked year/month/day here.
// For example:
day = String.valueOf(dayOfMonth);
month = String.valueOf(monthOfYear);
year = String.valueOf(pickyear);
}
}, year, month-1, day);
Upvotes: 1