我需要从数据库中获取值

时间:2013-05-11 00:19:40

标签: android database

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

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。

我希望你能帮忙!!

1 个答案:

答案 0 :(得分:1)

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

但是如果你想使用当前格式,那么只需获取字符串“Every 5 Hour”然后解析字符串中的数字。由于您的spinerInterval字符串格式似乎始终相同,因此您可以轻松解析数字

String s = s.subString(6,7);