2013-08-25 78 views
1

我剛剛開始使用android,並對sqlite db有個疑問。Android將項目從SQLite填充到列表視圖

我創建了一個數據庫與幾列,但現在只撤回一列。我想知道是否應該將該列撤回到一個字符串數組中,然後將其填充到列表視圖中,或直接將其放入一個適配器(我正在開始閱讀)。

另外,如果我打開了一個新的活動,並改變一些項目的信息(刪除或插入),然後再回到這個相同的活動,將其自動更新或我將不得不的OnStart重寫()

回答

1

從Android中的數據庫填充UI的最佳方式是使用CursorLoader。嘗試閱讀dev-guide here

基本上,您執行LoaderManager.Callbacks,並在onCreate中查詢數據庫並將響應傳遞給加載程序。

+0

謝謝,即時建立一個光標加載器,在所有的例子中,我只看到一個使用的碎片活動,而不是一個活動。我想知道爲什麼這是 – EternalFalls

+0

不用擔心它,它可以在所有的活動 – thepoosh

+0

好吧,所以我有2 peices的代碼,我不知道爲什麼一個它做什麼\t public Loader onCreateLoader(int arg0, Bundle arg1){ \t \t //不太確定這裏發生了什麼 \t \t String [] projection = new String [] {db.retColName(「KEY_TITLE」),db。retColName( 「KEY_ID」)}; \t \t \t \t CursorLoader裝載機=新CursorLoader( \t \t \t \t此, \t \t \t \t DBHandler, \t \t \t \t投影, \t \t \t \t空, \t \t \t \t空, \t \t \t \t null); \t \t \t \t return loader; \t} //如果我不使用內容提供者,我該如何完成它? – EternalFalls

0

首先呼叫從一個數據庫函數返回一個光標

Cursor cursor = dbhelper.Function(); 

然後使用串的陣列

String [] from = new String [] { 
     Dbadapter.KEY_NAME 
} 

然後使用int數組指派它

Int [] to = new int [] { 
     R.id.textview1 
} 

然後設置適配器

SimpleCursorAdapter sca = new SimpleCursorAdapter (this, R.layout.listview, cursor, from, to, 0); 
-3

其最佳覆蓋的onResume()來,因爲每次更新,回到你的應用程序的onResume()時得到一個回調(參見Android life cycle activities)。在這裏,只有您可以獲取該列的記錄並將其充值到列表中。

歡迎使用Android開發!祝一切順利!

+0

這是一個可怕的答案,代表你應該遠離的所有事情。 管理你自己的光標是壞的,應該避免 – thepoosh