2012-09-06 164 views
0

Google APIs Android 2.3.1,數據庫表中的數據更改不反映在表視圖屏幕中,但是如果我們重新啓動應用程序,將顯示更改並且如果我們加載app.js將顯示近期變動。Android Android數據反映在表視圖中

任何人都可以幫助我解決這個問題嗎?

fireEvent("db_update") 

&
的addEventListener( 'db_update',函數(){應該是什麼在這裏更新表數據})

回答

0

我找到了解決辦法,

Ti.App.addEventListener('updatedb', updateData); 

這裏 '了updateData' 是獲取數據從databae的tableview的功能。在 底部 '了updateData' 功能,設置表格視圖數據

i.e) tableview.setData(data); 

,然後,你的插入,更新或刪除功能應該觸發 'updatedb的' 功能

即)

function deleteData(recId) { 
    var db = Ti.Database.open(DBNAME); 
     db.execute(" DELETE FROM tblName WHERE id IN("+ recId+") "); 
     db.close(); 

    Ti.App.fireEvent('dataupdated'); 
} 

現在,在調用deleteData函數後,你的tableview數據將顯示沒有被刪除的記錄。

0

數據庫的更新,您需要先刪除它,然後安裝一個新的一個。或者運行查詢來更新當前的查詢。

這是我如何更新我的數據庫的基礎上,版本號我存儲在性能:

function updateDatabase(version){ 
    if (version != Ti.App.Properties.getInt('version',0)){ 
     sb.db.remove(); 
     sb.db = Ti.Database.install('/lib/db.sqlite','db'); 
     Ti.App.Properties.setInt('version',version); 
    } 
} 

在應用中,在開始時,我跑在它的手動類型版本號碼的功能。每次數據庫更改時,都可以手動更改此號碼。

updateDatabase(5); 

這當然不反映定期更新表內容。 (當您對數據庫運行常規查詢時)。

在這種情況下,您應該自己重新構建tableview的內容(您有代碼來填充tableview,重新運行該代碼),或者找到一種方法來定位您需要用ID更改的確切行。

相關問題