2011-04-10 50 views
0

我在我的應用程序中構建了一個常用選項卡,用於顯示數據庫中標記爲這樣的條目。在背面,它的工作原理應該如此,但我無法弄清楚如何在更改完成後重新加載收藏夾選項卡。當我退出並重新啓動應用程序時,更新顯示爲他們應該。鈦:如何重新加載標籤焦點?

在本質上我有同樣的問題,因爲在這裏介紹:http://developer.appcelerator.com/question/31211/tab---tableview--database-reload

「我有一個‘搜索’和‘搜索歷史’在我的應用程序選項卡此選項卡下執行的每一個搜索被插入到我的本地數據庫 然而,新的搜索沒有反映在tableview中,當我瀏覽到它時,搜索後,在'搜索歷史'選項卡中從數據庫中檢索數據 但是,當我退出應用程序並重新啓動它 我需要一些幫助來弄清楚如何在不退出應用程序的情況下觸發tableview刷新。解決方案更新: 我對這個問題感到'不高興',但它確實如此簡單 我爲裝載選項卡的窗口添加了'focus'eventlistener來加載數據。 win.addEventListener('focus',function(){loadDBdata();});

這看起來很合理,但loadDBdata函數應該包含什麼? 我非常感謝任何指向這個。

回答

0

我會建議在更新收藏夾時觸發一個事件,並在擁有收藏夾列表的桌子上放置一個事件監聽器。當它收到事件時,它應該更新表格內容。

看到這個問題,我剛纔已經回答應該解決您的問題還

Problems with refresh function for page, in Appcelerator

+0

謝謝!它運作良好! – jensmtg 2011-04-11 13:06:23

0

的LOADDB功能應該包含這樣的內容提供指導:

// init database 
var db = Ti.Database.install('path/to/database.db','myDB'); 

// your request 
var sql = 'SELECT * FROM myDatabaseTable'; 

// the result from that request 
var myContent = db.execute(sql); 

// need to put the result in a valid structure before inserting into your tableview 
var data = []; 
while (myContent.isValidRow()){ 
    // your tableviewrow 
    var row = { 
    title = myContent.field(0); 
    }; 
    data.push(row); 
    myContent.next(); 
}; 

// need to close stuff (!) 
myContent.close(); 
db.close(); 

// finally return data 
return data; 
+0

謝謝你的廣泛答案!它解決了我的問題。 – jensmtg 2011-04-11 13:06:50