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 に答える