Titanium: как перезагрузить вкладку по фокусу? - PullRequest
0 голосов
/ 10 апреля 2011

Я создал закладку «Избранное» в своем приложении, которая отображает записи в базе данных, помеченные как таковые. С обратной стороны это работает как надо, но я не могу понять, как перезагрузить вкладку «Избранное» после внесения изменений. Когда я закрываю и перезапускаю приложение, обновления появляются как должны.

По сути, у меня та же проблема, что и здесь: http://developer.appcelerator.com/question/31211/tab---tableview--database-reload

"В моем приложении есть вкладка" поиск "и" история поиска ". Каждый поиск, выполненный на этой вкладке, вставляется в мою локальную базу данных. Однако новый поиск не отражается в табличном представлении, получающем данные из БД на вкладке «история поиска», когда я просматриваю ее после поиска. Однако последний поиск загружается, когда я выхожу из приложения и перезапускаю его. Мне нужна помощь в выяснении, как запустить перезагрузку таблицы без выхода из приложения. ОБНОВЛЕНИЕ РЕШЕНИЯ: Я чувствую себя нубистски, когда задаю этот вопрос, но на самом деле все было так просто Я добавил EventListener 'focus' для окна, содержащего вкладку для загрузки данных. win.addEventListener ('focus', function () {loadDBdata ();});

Это кажется разумным, но что должна содержать функция loadDBdata? Я был бы очень признателен за любые указания на это.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

функция 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 голосов
/ 10 апреля 2011

Я бы посоветовал запустить событие при обновлении избранного и иметь прослушиватель событий в таблице, содержащей список избранного.Получив событие, он должен обновить содержимое таблиц.

см. Этот вопрос. Я только что ответил, что он также должен предоставить руководство по решению вашей проблемы

Проблемы с функцией обновления страницы, в Appcelerator

...