【问题标题】:Titanium: How to reload a tab upon focus?Titanium:如何在焦点上重新加载选项卡?
【发布时间】:2011-04-10 13:48:47
【问题描述】:

我在我的应用程序中构建了一个收藏选项卡,用于显示数据库中标记为此类的条目。在背面,这可以正常工作,但我不知道如何在进行更改后重新加载收藏夹选项卡。但是,当我退出并重新启动该应用程序时,更新会按应有的方式显示。

本质上,我遇到了与这里提出的相同的问题:http://developer.appcelerator.com/question/31211/tab---tableview--database-reload

“我的应用程序中有一个‘搜索’和‘搜索历史’选项卡。在此选项卡下执行的每个搜索都会插入到我的本地数据库中。 但是,当我在搜索后浏览到它时,新搜索不会反映在从“搜索历史”选项卡中的数据库中检索数据的 tableview 中。 但是,当我退出应用程序并重新启动它时,会加载最新的搜索。 我需要一些帮助来弄清楚如何在不退出应用程序的情况下触发 tableview 重新加载。 解决方案更新: 问这个问题我觉得“笨拙”,但它真的很简单 我为包含选项卡的窗口添加了一个“焦点”事件监听器以加载数据。 win.addEventListener('focus', function() { loadDBdata(); });

这似乎是合理的,但是 loadDBdata 函数应该包含什么? 我将不胜感激任何指向这一点。

【问题讨论】:

    标签: tabs focus titanium tableview reload


    【解决方案1】:

    我建议在收藏夹更新时触发一个事件,并在包含收藏夹列表的表上放置一个事件侦听器。当它接收到事件时,它应该更新表格内容。

    看到我刚刚回答的这个问题,它也应该为解决您的问题提供指导

    Problems with refresh function for page, in Appcelerator

    【讨论】:

      【解决方案2】:

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多