我终于成功地在数据库中添加了另一个列,但现在不知道如何解决它!这是一个提醒应用程序,信息传递到这里的警报管理器类
public class ReminderManager {
private Context mContext;
private AlarmManager mAlarmManager;
public ReminderManager(Context context) {
mContext = context;
mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
}
public void setReminder(Long taskId, Calendar when) {
Intent i = new Intent(mContext, OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);
PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
}
}
它从数据库中提取信息,并通过我的编辑活动意图发送(缩短代码)
private void saveState() {
String title = mTitleText.getText().toString();
String body = mBodyText.getText().toString();
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
String reminderDateTime = dateTimeFormat.format(mCalendar.getTime());
if (mRowId == null) {
long id = mDbHelper.createReminder(title, body, reminderDateTime, spinInterval);
if (id > 0) {
mRowId = id;
}
} else {
mDbHelper.updateReminder(mRowId, title, body, reminderDateTime, spinInterval);
}
new ReminderManager(this).setReminder(mRowId, mCalendar);
}
当然最后一行设置闹钟。我在一个微调器中添加了让用户选择警报设置的频率。我将其更改为setRepeating并添加微调器的值。我有他们在数据库中选择的价值
database picture http://www.bthindiet.com/database.jpg
如果id3是保存的最后一项并传递给我的ReminderManager类来设置警报,那么如何在5小时的spinInterval中提取该行的值?我想取该字符串,然后我将它转换为(60 * 60 * 1000 * 5)的时间为setRepeating。
我希望你能帮忙!!
答案 0 :(得分:1)
您最好将spinInterval
列作为整数插入。因此,而不是"Every 5 hours"
,它将只有5.它会更容易。
但是如果你想使用当前格式,那么只需获取字符串“Every 5 Hour”然后解析字符串中的数字。由于您的spinerInterval
字符串格式似乎始终相同,因此您可以轻松解析数字
String s = s.subString(6,7);