我在我的应用程序中构建了一个favorite-tab,它在数据库中显示标记为这样的条目。在背面这应该工作,但我无法弄清楚如何在更改后重新加载收藏夹选项卡。当我退出并重新启动应用程序时,更新会按原样显示。
本质上我遇到了与此处提出的问题相同的问题:http://developer.appcelerator.com/question/31211/tab---tableview--database-reload
“我的应用程序中有'搜索'和'搜索历史'选项卡。在此选项卡下执行的每个搜索都会插入到我的本地数据库中。 但是,在搜索之后,当我浏览它时,新搜索不会反映在从“搜索历史”选项卡中的数据库检索数据的tableview中。 但是,当我退出应用程序并重新启动它时,会加载最新的搜索。 我需要一些帮助来确定如何在不退出应用程序的情况下触发tableview重新加载。 解决方案更新: 对于提出这个问题,我觉得“不怎么样”,但实在是太简单了 我为窗口添加了一个'focus'eventlistener,用于加载选项卡以加载数据。 win.addEventListener('focus',function(){loadDBdata();});
这似乎是合理的,但loadDBdata函数应该包含什么? 我非常感谢任何指向这一点。
答案 0 :(得分:0)
我建议在收藏夹更新时触发一个事件,并在包含收藏夹列表的桌子上放置一个事件监听器。当它收到事件时,它应该更新表内容。
看到这个问题我刚回答它应该提供解决问题的指南
答案 1 :(得分: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;