2014-07-15 4 views
0

저는 Android가 매우 새로워서 일이 모듈별로 작동하는 방식을 배우려고합니다. 다음은 내가하려는 일입니다.SQLite 데이터베이스를 실시간으로 업데이트 할 때 Cursor에서 업데이트 된 값을 표시 할 수 없습니다.

즐겨 찾기 확인란 (이미지)으로 단어를 표시하십시오. 사용자가 탭을 누르면 데이터베이스가 업데이트되고 데이터베이스 테이블의 열에 해당 값이 저장됩니다 (확인의 경우 1, 선택하지 않은 경우 0). 커서를 사용하여 단어 및 즐겨 찾기 확인란의 값을 검색합니다. 좋아하는 이미지를 탭하면 문제없이 데이터베이스가 올바르게 업데이트됩니다.

내가 직면하고 문제는 : 나는 응용 프로그램을 종료하고 다시 시작하지 않는 한

가, 커서가 데이터베이스에 최근 변화를 가져 오지 않습니다. 그것을 더 설명하기 위해, 다음/이전 단어 (화면의 하단에있는 버튼을 사용하여)로 검색하면 검색된 값이 커서 커서가 이전 데이터베이스 값을 가지고 업데이트 된 값이 아닌 것처럼 보입니다 .

Google을 통해 StackOverflow를 검색했지만 구체적인 검색 결과를 얻지 못했지만 올바른 검색 조건을 사용하지 않는 것 같습니다. 나는 이것이 커서 업데이트와 재 쿼리가 가치 저하된다는 사실을 알고 있지만 다시 방향을 잃어 버렸다.

[편집] 얻기 위해 아래에 언급 된 방법을 사용하여 커서 :

public Cursor getWords() { 

     SQLiteDatabase db = getReadableDatabase(); 
     SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); 

     String[] sqlSelect = {"_id", "word", "favourite"}; 
     String sqlTables = "word_list"; 

     qb.setTables(sqlTables); 
     Cursor c = qb.query(db, sqlSelect, null, null, 
       null, null, null); 

     c.moveToFirst(); 
     return c; 
    } 

이 방법은 사용자가 데이터베이스를 업데이트 마음에 드는 이미지를 도청 할 때 호출됩니다

public void setFavWord(int markFav, int wordPos) { 

    SQLiteDatabase db = getWritableDatabase(); 
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); 

    ContentValues values = new ContentValues(); 
    values.put("favourite", markFav); 

    db.update("word_list", values, "_id = " + wordPos, null); 
} 
+0

내가 제대로 작동하는지 응용 프로그램을 종료하면 bez가 작동합니다 페이지를 새로 고칩니다. – Sree

+0

sqlite에 데이터를 삽입 한 후 다시 커서를 업데이트하고 페이지를 새로 고치기 위해 데이터를 가져옵니다. –

+0

@Sreekanth 어떻게 도움이 될까요? 내가 아는 한 오래된 데이터 세트를 다루는 커서입니다. – Paritosh

답변

3

이 커서는 동적이지 ; 쿼리가 실행 된 시점의 데이터베이스 스냅 샷을 보여줍니다.

데이터베이스가 변경되면 쿼리를 다시 실행해야합니다.

0

@Sreekanth 님이 제안한 것처럼 댓글 섹션에서 좋아하는 이미지를 누를 때마다 커서를 업데이트하고 있습니다. 그것은 잘 작동하지만 솔루션보다는 해결 방법이라고 생각합니다. 어쩌면 나는 그렇게 말하는 것이 틀리다.

관련 문제