AlarmClock.EXTRA_DAYS如何工作 - Android Studio

问题描述:

所以我有一个代码在指定的时间设置闹钟。我想指定星期几。到目前为止,我找到的所有例子都使用Calendar类,但是,我使用AlarmClock。这是我的代码:AlarmClock.EXTRA_DAYS如何工作 - Android Studio

Intent openNewAlarm = new Intent(AlarmClock.ACTION_SET_ALARM); 
     openNewAlarm.putExtra(AlarmClock.EXTRA_HOUR, Integer.parseInt(time[0])); 
     openNewAlarm.putExtra(AlarmClock.EXTRA_MINUTES, Integer.parseInt(time[1])); 
     openNewAlarm.putExtra(AlarmClock.EXTRA_MESSAGE, String.valueOf(reminder.getText())); 
     openNewAlarm.putExtra(AlarmClock.EXTRA_DAYS, Calendar.SATURDAY); 
     startActivity(openNewAlarm); 

通知的EXTRA_DAYS线。根据描述:

/** 
* Bundle extra: Weekdays for repeating alarm. 
* <p> 
* Used by {@link #ACTION_SET_ALARM}. 
* </p><p> 
* The value is an {@code ArrayList<Integer>}. Each item can be: 
* </p> 
* <ul> 
* <li> {@link java.util.Calendar#SUNDAY}, 
* <li> {@link java.util.Calendar#MONDAY}, 
* <li> {@link java.util.Calendar#TUESDAY}, 
* <li> {@link java.util.Calendar#WEDNESDAY}, 
* <li> {@link java.util.Calendar#THURSDAY}, 
* <li> {@link java.util.Calendar#FRIDAY}, 
* <li> {@link java.util.Calendar#SATURDAY} 
* </ul> 
*/ 
public static final String EXTRA_DAYS = "android.intent.extra.alarm.DAYS"; 

文档不帮我很多,或者说我无法理解:

https://developer.android.com/reference/android/provider/AlarmClock.html#EXTRA_DAYS

https://developer.android.com/reference/java/util/Calendar.html#SUNDAY

如果没有记错的话,通过选择日历。星期天,当设置闹钟时,星期天应该在组合框中打勾,这意味着这个闹钟将在每个星期日都会重复,但事实并非如此。

我该如何设法选择一周中的哪几天我的闹钟应该重复?

任何帮助表示欢迎,并感谢为你的时间提前,

Sartox

编辑:我使用的是

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 

我的清单。警报正常工作,只需要学习如何设置一周的日子。

+0

但你正在使用的权限'com.android.alarm.permission.SET_ALARM'? – Opiatefuchs

+0

是的,忘了提及它。将立即编辑。谢谢 – sartox

The value is an {@code ArrayList<Integer>}. 

你需要从Calendar.SATURDAY构建ArrayList<Integer>,并把它传递给putExtra()

ArrayList<Integer> alarmDays= new ArrayList<Integer>(); 
alarmDays.add(Calendar.SATURDAY); 
openNewAlarm.putExtra(AlarmClock.EXTRA_DAYS, alarmDays); 
+0

耶稣,我很短视:/感谢您的帮助,一直坚持了这一两天。非常感谢:D – sartox

+0

很容易错过精心设计的事物中的这些简单细节。乐于帮助。 :) – iVoid

+0

这很奇怪,它显式是一个'ArrayList '而不是'List ' – AjahnCharles