Possiedo un DatePicker. La mia app sta inviando una notifica. Voglio visualizzare la data nel formato MMG-gg-aaaa del 01-07-2013. Si prega di controllare il mio codice qui sotto:Data formato Android a MM-GG-AAAA da Datepicker
//---Button view---
Button btnOpen = (Button) findViewById(R.id.btEventDone);
btnOpen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String strT = title.getText().toString();
String strDes = description.getText().toString();
// check if user did not input anything
if(strT.isEmpty() || strDes.isEmpty()){
Toast.makeText(getBaseContext(), "You have blank fields!", Toast.LENGTH_SHORT).show();
}
else{
//---use the AlarmManager to trigger an alarm---
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
//---get current date and time---
Calendar calendar = Calendar.getInstance();
//---sets the time for the alarm to trigger---
calendar.set(Calendar.YEAR, date.getYear());
calendar.set(Calendar.MONTH, date.getMonth());
calendar.set(Calendar.DAY_OF_MONTH, date.getDayOfMonth());
calendar.set(Calendar.HOUR_OF_DAY, time.getCurrentHour());
calendar.set(Calendar.MINUTE, time.getCurrentMinute());
calendar.set(Calendar.SECOND, 0);
//---PendingIntent to launch activity when the alarm triggers---
Intent i = new Intent(CalendarEvent.this, DisplayNotification.class);
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
Date d = new Date(year, month, day);
SimpleDateFormat dateFormatter = new SimpleDateFormat(
"MM-dd-yyyy");
String strDate = dateFormatter.format(d);
String strTitle = title.getText().toString();
String strDescription = description.getText().toString();
strDate = String.valueOf(month) + "-" + String.valueOf(day) + "-" + String.valueOf(year);
StringBuilder sb = new StringBuilder();
if(hour>=12){
sb.append(hour-12).append(":").append(minute).append(" PM");
}else{
sb.append(hour).append(":").append(minute).append(" AM");
}
String strTime = sb.toString();
//---assign an ID of 1---
i.putExtra("NotifID", notifID);
i.putExtra("Title", strTitle);
i.putExtra("Description", strDescription);
i.putExtra("Date", strDate );
i.putExtra("Time", strTime);
PendingIntent displayIntent = PendingIntent.getActivity(
getBaseContext(), notifID, i, 0);
//---sets the alarm to trigger---
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), displayIntent);
finish();
}
}
});
}
AlarmDetails:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.alarmdetails);
//---look up the notification manager service---
NotificationManager nm = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
title = (EditText) findViewById (R.id.etDetailTitle);
description = (EditText) findViewById (R.id.etDetailDescription);
date = (EditText) findViewById (R.id.etDetailDate);
time = (EditText) findViewById (R.id.etDetailTime);
done = (Button) findViewById (R.id.btnAlarmDone);
done.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
//---cancel the notification---
nm.cancel(getIntent().getExtras().getInt("NotifID"));
String strTitle = getIntent().getExtras().getString("Title");
String strDescription = getIntent().getExtras().getString("Description");
strDate = getIntent().getExtras().getString("Date");
String strTime = getIntent().getExtras().getString("Time");
title.setText(strTitle);
description.setText(strDescription);
date.setText(strDate);
time.setText(strTime);
}
DisplayNotification:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//---get the notification ID for the notification;
// passed in by the NotifyActivity---
int notifID = getIntent().getExtras().getInt("NotifID");
String strTitle = getIntent().getExtras().getString("Title");
String strDescription = getIntent().getExtras().getString("Description");
String strDate = getIntent().getExtras().getString("Date");
String strTime = getIntent().getExtras().getString("Time");
//---PendingIntent to launch activity if the user selects
// the notification---
Intent i = new Intent(DisplayNotification.this, AlarmDetails.class);
i.putExtra("NotifID", notifID);
i.putExtra("Title", strTitle);
i.putExtra("Description", strDescription);
i.putExtra("Date", strDate);
i.putExtra("Time", strTime);
PendingIntent detailsIntent =
PendingIntent.getActivity(this, 0, i, 0);
NotificationManager nm = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
Notification notif = new Notification(
R.drawable.ic_launcher,
"iHealthFirst: Notification!",
System.currentTimeMillis());
CharSequence from = "iHealthFirst - New Notification";
CharSequence message = "This is your alert, click to view";
notif.setLatestEventInfo(this, from, message, detailsIntent);
notif.flags = Notification.FLAG_INSISTENT;
notif.defaults |= Notification.DEFAULT_SOUND;
//---100ms delay, vibrate for 250ms, pause for 100 ms and
// then vibrate for 500ms---
notif.vibrate = new long[] { 100, 250, 100, 500};
nm.notify(notifID, notif);
//---destroy the activity---
finish();
}
Il mio attuale applicazione solo lo schermo in questo formato M-d-aaaa. Ho letto che dovremmo usare SimpleDateFormat, ma non so come usarlo nella mia app. Qualcuno può aiutare? Grazie.
Grazie, la soluzione funziona per me! –