2013-07-16 2 views
0

이 튜토리얼 http://www.sarahghaffary.com/android-quotes-generator-sample-application-using-alarmmanager-and-sqlite-database/을 따르고 있습니다.하지만 따옴표가 없어도 따옴표를 반복하여 계속 작성하는 방법을 알고 싶습니다. 아래의 코드를 변경해야하지만 확실하지는 않습니다. 초보자 만이 도움이 될 것입니다!동일한 활동을 반복하십시오

코드 :

public String getRandomQuote(){ 
SQLiteDatabase db = this.getWritableDatabase(); 
String selectQuery = "SELECT * FROM " + QUOTES_TABLE_NAME + " WHERE " + KEY_ISREAD + " = 0 ORDER BY RANDOM() LIMIT 1"; 
Cursor cursor = db.rawQuery(selectQuery, null); 

if (cursor != null) 
    if(cursor.moveToFirst()){ 
     db.execSQL("update " + QUOTES_TABLE_NAME + " set " + KEY_ISREAD + " = 1 where "+ KEY_ID +" = "+ cursor.getString(0)); 
     return cursor.getString(1); 
    } 
return "Sorry, you ran out of quotes <img src="http://www.sarahghaffary.com/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley"> "; 
} 
+0

간단한 해결책은 다시 0으로 KEY_ISREAD를 넣어하는 것입니다. – njzk2

+0

어떻게하면됩니까? – user2407147

+0

은 where 절이 없어도 1로 설정하는 것과 같은 방식입니다. – njzk2

답변

2
public String getRandomQuote(){ 
SQLiteDatabase db = this.getWritableDatabase(); 
String selectQuery = "SELECT * FROM " + QUOTES_TABLE_NAME + " WHERE " + KEY_ISREAD + " = 0 ORDER BY RANDOM() LIMIT 1"; 
String UpdateAllQuery= "Update "+ QUOTES_TABLE_NAME + " set " + KEY_ISREAD + " = 0"; 
Cursor cursor = db.rawQuery(selectQuery, null); 
String quote = ""; 

if (cursor != null){ 
     cursor.moveToFirst(); 
     if (cursor.getCount() < 1){ 
      db.execSQL(UpdateAllQuery); 
      cursor = db.rawQuery(selectQuery, null); 
      cursor.moveToFirst(); 
     } 
     db.execSQL("update " + QUOTES_TABLE_NAME + " set " + KEY_ISREAD + " = 1 where "+ KEY_ID +" = "+ cursor.getString(0)); 
     quote = cursor.getString(1); 
     return quote; 
}else{ 
    return "Sorry, you ran out of quotes <img src="http://www.sarahghaffary.com/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley"> "; 
} 
+0

"죄송합니다. 따옴표가 다 떨어졌습니다"라고 표시됩니다. 시도해 주셔서 감사합니다 :) – user2407147

+0

수정 된 코드로 다시 시도하십시오. 그것이'Sorry' 부분으로 곧바로 간다면 널 커서가 있습니다. – ObieMD5

+0

getRandomQuote에 오류가 발생했습니다. 이제 return 문을 추가하기 위해 app : S에 아무것도 표시하지 않습니다. 다시 시도해 주셔서 감사합니다 : D – user2407147

관련 문제