Titanium 在 tableview 中显示表中的数据

Posted

技术标签:

【中文标题】Titanium 在 tableview 中显示表中的数据【英文标题】:Titanium display the datas from the table in tableview 【发布时间】:2015-01-07 15:13:45 【问题描述】:

我是钛的新手..我创建了一个 tableview,我想在创建的标签和 tableview 表单中显示数据库中的数据,但无法实现..

代码:

var triplistview = Titanium.UI.createTableView(
    backgroundColor : 'white',
    width : Titanium.UI.FILL,
    height : Ti.UI.SIZE,
    layout : 'horizontal',
    padding : '10dp',
    separatorColor : theme_background
    // margin:'10dp',
);
scrollView.add(triplistview);
var data = [];

    var db = Titanium.Database.open('trip');

    db.execute('CREATE TABLE IF NOT EXISTS newtrip (id INTEGER PRIMARY KEY AUTOINCREMENT, triplabel TEXT,tripname TEXT,destination TEXT,fromdate TEXT,todate TEXT)');
    while (resultrows.isValidRow()) 

            var row = Ti.UI.createTableViewRow(
            height : Ti.UI.SIZE,
            rightImage : '/images/right1.png',

            layout : 'absolute',
            //title :  '' + 'Destination' + '' + '' + resultrows.fieldByName('destination') + '' + 'From Date:' + '' + '' + resultrows.fieldByName('fromdate') + '' + 'To Date:' + '' + resultrows.fieldByName('todate')
        );

        row.add(tripnamelabel);
        row.add(buttonedit);
        row.add(buttondelete);
        row.add(fromdate);
        row.add(dash);
        row.add(todate);
        triplistview.add(row);
    row.className = 'control';
        data.push(row);

        resultrows.next();
    
    triplistview.setData(data);
    resultrows.close();
    db.close();

这些是我创建的标签

 var tripnamelabel = Ti.UI.createLabel(
    text:resultrows.fieldByName('destination'),
    color : theme_style,
    font : 
        fontSize : '15dp',
        fontWeight : 'bold'
    ,
    top : '10dp',
    left : '10dp',
);
 var buttonedit = Ti.UI.createButton(
    backgroundImage : '/images/list_edit.png',
    top : '20dp',
    width : wb,
    height : hb,
    right : '20dp'
);
var buttondelete = Ti.UI.createButton(
    backgroundImage : '/images/delete_ic.png',
    top : '20dp',
    width : wb,
    height : hb,
    right : '60dp'
);

var fromdate = Ti.UI.createLabel(
    text:resultrows.fieldByName('fromdate') 
    color : 'Black',
    font : 
        fontSize : '13dp',
        fontWeight : 'bold'
    ,
    top : '40dp',
    left : '10dp',
    right : '10dp',
    bottom : '20dp'
);

var dash = Ti.UI.createLabel(
    text : '-',
    color : 'Black',
    font : 
        fontSize : '15dp',
        fontWeight : 'bold'
    ,
    top : '40dp',
    left : '80dp',
    right : '10dp',
    bottom : '20dp'
);

var todate = Ti.UI.createLabel(
    text:resultrows.fieldByName('todate') 
    color : 'Black',
    font : 
        fontSize : '13dp',
        fontWeight : 'bold'
    ,
    top : '40dp',
    left : '90dp',
    right : '10dp',
    bottom : '20dp'
);

请帮助我,因为我被困在这个问题上超过一天,我收到了这个错误

[ERROR] 应用程序安装程序异常进程终止。进程退出值为 1

【问题讨论】:

我认为你提到的错误是安装 apk realted 而不是代码 它说在 myfilename.js 中解析代码失败.. 能否在代码上方提及文件名 这些在同一个文件名apppage1.js中 如果我删除这个文本:resultrows.fieldByName('destination') 而如果我给出文本:'hi'..这个 tableview 正在显示 【参考方案1】:

我可以看到的一个问题是您没有为结果行分配任何内容。

没有针对数据库的查询,例如

var resultrows = db.execute('SELECT * FROM newtrip');
while (resultrows.isValidRow())  ...

我不确定你是如何进入 while 循环来显示你的文本的:正如你所说的'hi'。

错误似乎与您应该看到的不符。想知道是否删除了太多代码来帮助这个示例。

【讨论】:

对不起!我已经为结果行分配了值,忘记将其粘贴在这里..它是相同的 SELECT 查询 你需要给出一个更完整的例子。您不能复制和粘贴您认为重要的代码。您没有输入的代码可能是错误的原因。请更新您原始帖子中的代码。

以上是关于Titanium 在 tableview 中显示表中的数据的主要内容,如果未能解决你的问题,请参考以下文章

iOS 模拟器未在 Titanium Studio 中显示

ImageView 使用存储在 Titanium.Filesystem.applicationDataDirectory 的图像显示占位符,而不是图像

导航控制器未显示在 TableView 中

IOS:通过 tableView 导航并在下一个视图中显示表视图数据

QT中,我将一张数据库表显示在tableView上,我需要去设置或修改tableView上每一行的颜色,该怎么做?

Titanium - 在 Alloy 中动态创建和添加 UI 对象的最佳实践是啥