Я хочу установить уведомление в будние дни. Я добавил несколько дней в диалоговом окне предупреждения, чтобы показать дни.Как установить повторное уведомление для определенного дня недели?
Я хочу установить день в календаре, который пользователь выбрал в диалоговом окне оповещения. Кроме того, это должно повториться на следующей неделе в тот же день.
Я установил диалог выбора времени, чтобы выбрать время уведомления. Но если я делаю c.getTime(), я получаю текущую дату и время.
Как установить уведомление за другие дни? Например, если сегодня понедельник, и я хочу создать уведомление на свадьбе? Как я могу назначить встречу в календаре?
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND,0);
notification = c.getTime();
notificationTime = df.format(notification);
notifyTime.setText(notificationTime);
Toast.makeText(getApplicationContext(),String.valueOf(notification),Toast.LENGTH_SHORT).show();
Для получения уведомления я использую диспетчер аварийных сигналов. Диалог оповещения
private void setAlarm(Calendar targetmCalen) {
Intent intent = new Intent(getBaseContext(),NotificationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,targetmCalen.getTimeInMillis(),
AlarmManager.INTERVAL_DAY *7, pendingIntent);
ComponentName receiver = new ComponentName(getApplicationContext(),NotificationReceiver.class);
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
Toast.makeText(getApplicationContext(),"Notification Set",Toast.LENGTH_SHORT).show();
}
для выбора дня:
selectDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(AddEventActivity.this);
builder.setSingleChoiceItems(R.array.day_array, -1,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String[] day = getBaseContext().getResources().getStringArray(R.array.day_array);
selectDay.setText(day[item]);
dialog.dismiss();
}
});
builder.show();
}
});
Должен ли я установить DayOfWeek в календаре, например в диалоговом окне предупреждения? Как
c.set (Calendar.DAY_OF_WEEK)?
EDIT:
Я пытался сделать этот путь. Но доза это может идти на один день вперед каждый раз, если я выбираю день несколько раз.
selectDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(AddEventActivity.this);
builder.setSingleChoiceItems(R.array.day_array, -1,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String[] day = getBaseContext().getResources().getStringArray(R.array.day_array);
selectDay.setText(day[item]);
dayOfWeek = day[item];
switch (dayOfWeek)
{
case "Mon":
c.set(Calendar.DAY_OF_WEEK,2);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Tue":
c.set(Calendar.DAY_OF_WEEK, 3);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Wed":
c.set(Calendar.DAY_OF_WEEK, 4);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Thu":
c.set(Calendar.DAY_OF_WEEK, 5);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Fri":
c.set(Calendar.DAY_OF_WEEK, 6);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Sat":
c.set(Calendar.DAY_OF_WEEK, 7);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
break;
case "Sun":
c.set(Calendar.DAY_OF_WEEK,1);
c.getTime();
Toast.makeText(getApplicationContext(),String.valueOf(c.getTime()),Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
}
});
builder.show();
}
});
Пожалуйста, помогите ..
поставил вам уведомление внутри '' обслуживания – Mohit
, что я сделал. Я получаю уведомление, но не в нужный день. как я могу установить день? – Sid
вы всегда можете создать объект Date d, а затем c.setTime (d) – Infested