2013-05-11 3 views
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으로 변경하고 회 전자에서 값을 추가합니다. 나는 내가 spinInterval에 대한 해당 행에 값을 추출 할 수있는 방법 ID3는 마지막 항목이 저장된 알람을 설정하는 내 ReminderManager 클래스에 전달되면 그들이 여기

database picture http://www.bthindiet.com/database.jpg

데이터베이스에서 선택한 값을 가지고 5 시간? 그 문자열을 가져 와서 setRepeating을 위해 (60 * 60 * 1000 * 5) 시간으로 변환합니다.

도와 주시면 감사하겠습니다.

+0

내가 그것을 정수로 spinInterval를 선언 만 (2, 4, 5 등으로 시간을 유지하기 쉬울 것이라고 생각 수를 분석 할 수). 코드에 "Every".. "hours"레이블을 동적으로 추가하기 만하면됩니다. –

답변

1

spinInterval 열을 정수로 삽입하는 것이 좋습니다. 따라서 "Every 5 hours" 대신 5 개가됩니다. 더 쉬울 것입니다.

그러나 현재 형식을 사용하려면 "매 5 시간마다"문자열을 가져온 다음 문자열에서 숫자를 파싱하십시오. 그것은 당신의 spinerInterval 문자열 형식은 항상 동일 보인다로서 당신은 쉽게

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

int로 삽입하기가 더 쉽고 (60 * 60 * 1000 * s) 같이 setRepeating 할 수 있다는 것에 동의합니까? 나는 (6,7) 부분을 이해하지 못한다고 생각한다. 알람을 설정하려면 현재 저장된 항목을 가져와야합니다. 마지막으로 저장된 레코드는 예제에서 id # 3입니다. 내 무지 미안해! – JeffK

+0

@JeffK 6, 7은 하위 문자열을 얻는 것입니다. 여섯 번째 위치에 숫자가 있습니다. 거기에서 구문 분석합니다. – stinepike

관련 문제