0

我终于成功地在数据库中添加了另一列,但现在不知道如何将其取出!这是一个提醒应用程序,信息在这里传递给警报管理器类

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 并添加来自微调器的值。我这里有他们在数据库中选择的值

数据库图片 http://www.bthindiet.com/database.jpg

如果 id3 是最后保存的项目并传递给我的 ReminderManager 类以设置警报,我如何提取该行上 5 小时的 spinInterval 的值?我想获取该字符串,然后将其转换为 setRepeating 的 (60 * 60 * 1000 * 5) 时间。

我希望你能帮忙!!

4

1 回答 1

1

您最好将spinInterval列插入为整数。因此,"Every 5 hours"它将只有 5 个。它会更容易。

但是,如果您想使用当前格式,则只需获取字符串“每 5 小时”,然后解析字符串中的数字。看起来您的spinerInterval字符串格式总是相同的,那么您可以轻松解析数字

String s = s.subString(6,7);
于 2013-05-11T04:15:09.240 回答