tableView填充了数据库信息

时间:2012-01-20 17:19:16

标签: android appcelerator appcelerator-mobile

我正在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的例子吗?

谢谢!

1 个答案:

答案 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;