2011-04-10 49 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