我正在appcelerator中为Android构建一个calander应用程序,但现在我在将数据库中的信息转换为tableView时遇到了一些问题。我是appcelerator的新手并且有一些问题。
我在sql中创建了一些用PHP脚本获取的表。但现在我正试图从我的应用程序中的数据库中获取该信息,出现问题。是否有可能使用PHP脚本或我必须使用其他东西? (如果你访问该链接,你可以看到创建xml的php脚本。我可能会更改它,因此事件将显示每个日期:2012/1/2 GFT,Restafval,PMD; 2012/1/17 papier en karton;等)
var win = Titanium.UI.currentWindow;
var data = [];
var xhr = Ti.Network.createHTTPClient();
xhr.open('GET', 'http://www.dehertoghnathalie2011.dreamhosters.com/titanium/kalender.php');
xhr.onload = function(){
try
{
var doc = this.responseXML.documentElement;
var items = doc.getElementsByTagName('gebeurtenis');
var x = 0;
for(var i = 0; i<items.length; i++)
{
var afhaaldag = items.gebeurtenis(i);
var datum = gebeurtenis.getElementsByTagName('datum').gebeurtenis(0).text;
var afval = gebeurtenis.getElementsByTagName('afval').gebeurtenis(0).text;
var row = Ti.UI.createTableViewRow({height:80});
var labelText = datum;
var label = Ti.UI.createLabel({
text:labelText,
color:'black',
textAlign:'left'
});
row.add(label);
data[x++] = row;
}
}
catch(E)
{
alert(E);
}
var table = Ti.UI.createTableView({data:data});
win.add(table);
}
xhr.send();
所以当我在Android模拟器中运行时,我得到一个例外:“无法在对象[Ti.NodeList]中找到函数gebeurtenis。”有谁知道我怎么解决这个问题?
而且:从数据库中获取信息的最佳方式是什么?最好使用httpClient(xhr)还是SQLite?如果我理解它,SQLite用于存储设备(如偏好或在我的情况下有人希望得到即将发生的事件的通知)并且httpClient用于RSS。你能给我一些httpClient的例子吗?
谢谢!
答案 0 :(得分:0)
再次解决了这个问题。我改变了这些路线:
var afhaaldag = items.gebeurtenis(i);
var datum = gebeurtenis.getElementsByTagName('datum').gebeurtenis(0).text;
var afval = gebeurtenis.getElementsByTagName('afval').gebeurtenis(0).text;
到
var item = items.item(i);
var datum = item.getElementsByTagName('datum').item(0).text;
var afval = item.getElementsByTagName('afval').item(0).text;