所以我有一个在指定时间设置闹钟的代码。我还想指定一周中的哪一天。到目前为止,我发现的所有示例都使用 Calendar 类,但是,我使用 AlarmClock。这是我的代码:
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
如果没记错的话,通过选择Calendar.Sunday,设置闹钟时,应该在comboBox中勾选sunday,表示这个闹钟会在每个周日重复,但事实并非如此。
如何选择闹钟应在一周中的哪几天重复?
欢迎任何帮助,并提前感谢您的宝贵时间。
编辑:我正在使用
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
在我的 list 上。闹钟工作正常,只需要学习如何设置星期几。
最佳答案
The value is an {@code ArrayList<Integer>}.
您需要构造一个 ArrayList<Integer>
来自Calendar.SATURDAY
并将其传递给putExtra()
ArrayList<Integer> alarmDays= new ArrayList<Integer>();
alarmDays.add(Calendar.SATURDAY);
openNewAlarm.putExtra(AlarmClock.EXTRA_DAYS, alarmDays);
关于java - AlarmClock.EXTRA_DAYS 如何工作 - Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43391350/