我有一个谷歌远距离矩阵api的列表值以及目的地列表。我现在所做的是:
1)从地理位置获取输出目的地列表google places api和当前位置(lon& lat)。 2)目的地和当前位置列表(lon& lat)从google远程矩阵api输出远程和持续时间列表。
现在有两个单独的输出,它是google远程矩阵和目的地列表中的列表值。
两者都被带到输出功能以显示到tableview。那么现在的问题是,我想如何组合这两个值并显示在tableview行中?
我需要将此值组合并添加到tableview行中。我现在拥有的只是最后一个值添加到tableview行。让我们看看代码和图像:
var getValue = function(matrix,all) {
var matrix;
var all;
//Ti.API.info(matrix);
//Ti.API.info(all);
var section = Titanium.UI.createTableViewSection();
var data = [];
for (var i=0;i<matrix.length;i++)
{
var distance = matrix[i].elements[0].distance.text;
Ti.API.info(distance);
var lblDist = Ti.UI.createLabel({
width: 'auto', height: 23, left: 52,
textAlign: "left", font: {fontSize: 10, fontFamily:"HelveticaNeue-Bold"}, bottom: -2});
lblDist.text = distance;
};
for (var c=0;c<all.length;c++)
{
var row = Ti.UI.createTableViewRow({height:45,selectedBackgroundColor: '#dbd9cc'});
var label = Ti.UI.createLabel({left:52,top:2,
width:245,height:30,font:{fontFamily:'Open Sans',fontSize:20,fontWeight:'bold'}});
var sTitle = all[c].name;
label.text = sTitle;
//lblDist.text = distance;
row.add(label);
row.add(lblDist);
section.add(row);
tableview.data=[section];
self.add(tableview);
}
};
当我Ti.API.info(distance);
时,它会列出我要添加到tableview中的所有输出。现在只有最后一个值添加到tableview中。
答案 0 :(得分:2)
对不起,您的代码段中有几个问题。
让我试着帮助你解决一些问题。
您需要注意JavaScript [1]中变量的声明,范围和提升。然后,您将意识到在第一个循环结束时,您将只存储最后一个 Label 对象,在您的情况下,标签,文本= 1.0km
在第二个循环中,发生同样的错误。您将在屏幕上添加 all.length 屏幕上的 tableview 。
您需要了解这两个循环将依次运行。然后,只有当两个循环具有相同的长度时,此解决方案才有效。
基于第三点,我可以编写一个示例解决方案。
var getValue = function(matrix,all) {
var lblDist = null;
var label = null;
var data = [];
for (var i=0;i<matrix.length;i++) {
var row = Ti.UI.createTableViewRow({height:45,selectedBackgroundColor: '#dbd9cc'});
lblDist = Ti.UI.createLabel({width:'auto', height: 23, left: 52, textAlign: "left", font: {fontSize: 10, fontFamily:"HelveticaNeue-Bold"}, bottom: -2});
lblDist.text = matrix[i].elements[0].distance.text;
label = Ti.UI.createLabel({left:52,top:2,width:245,height:30,font:{fontFamily:'Open Sans',fontSize:20,fontWeight:'bold'}});
label.text = matrix[i].elements[0].name.text;
row.add(label);
row.add(lblDist);
data.push(row);
}
self.add(tableview);
tableview.setData(data);
};