2013-03-16 57 views
0

我正在設計一個android應用程序,並希望使用Content Provider來填充我的列表視圖。問題是我需要來自兩個不同來源(數據庫中的表格)的數據:一組靜態數據,另一組用於與靜態數據相關的用戶進度數據。Android內容提供商;幫助設計可敬的URI結構

因此,例如,我得到了測驗列表,以及這些測驗中每個測驗的用戶成績列表。

如果SimpleCursorArray了兩個光標,然後我可以使用:

/quizzes 
/users/#/quiz_grades 

爲兩個URI的並通過光標適配器。

但SimpleCursorArray只能使用一個遊標,所以我需要加入我擁有的兩個表。沒問題,但我怎麼設計一個乾淨的的URI?

也許是這樣的:

/users/#/quizzes 

但是,這感覺不對,因爲這些問題不屬於用戶...

或許:

/quizzes/users/# 

但同樣,用戶不屬於問題...

有時我需要自己檢索測驗沒有用戶等級,所以我還需要:

我知道這是一個很迂腐的問題,但我的強迫症自然不會讓我有任何的滿足進度,直到我想出解決辦法...

+0

由於您只有兩張表,發佈DDL可能會幫助我們更好地瞭解它們之間的關係。也就是說,如果您的內容提供商的唯一原因是在您的應用程序中傳遞數據*,那麼它是過度的。爲什麼不直接訪問表? – 323go 2013-03-16 22:40:41

+0

我有兩個以上的表,但在這個例子中,我只使用兩個表(實際上是視圖)。 QuizSummary視圖具有列_id,名稱,num_questions,而QuizProgress視圖具有列user_id,quiz_id,num_questions_correct。所以在我的列表視圖中,我使用測驗名稱填充了一個TextView,並用num_questions填充了一個num_questions_correct進度條。 – kennyg 2013-03-17 18:15:50

+0

我目前將它作爲直接表訪問來實現,但是這會阻止用戶界面並降低應用的速度。我想讓SimpleCursorAdapter的用戶,並導致我走向ContentProvider的道路。我同意這可能是矯枉過正,所以我第二次猜測這個想法。如果它有什麼不同,我最終打算將這些數據從服務器上反覆發送。 – kennyg 2013-03-17 18:19:10

回答

0

/users/#/quizzes-with-grades怎麼樣?