【发布时间】:2014-12-11 07:26:24
【问题描述】:
我有一个列表视图,我从 api 调用收到的数据按顺序显示
1
2
3
4
5
在我点击一个项目比如 3 后,我进行 api 调用,按顺序提供数据
3
1
2
4
5
我需要显示相同的内容。但我的列表视图目前填充像
3
1
3
4
5
我检查了显示列表视图项目数据的日志,它以正确的顺序打印
ListView {
id: contactListView
dataModel: contactsData
listItemComponents: [
ListItemComponent
{
id: homeListComponent
type: "item"
CustomListItemHomePage
{
id: listCell
background: ListItemData.colors
text: ListItemData.name;
onClicked: {
listCell.ListItem.view.fetchListFromLV();
}
}
}
]
function fetchListFromLV()
{
//some codes that makes the api call here
}
}
attachedObjects: [
GroupDataModel {
id: contactsData
sortingKeys: [ "last" ]
grouping: ItemGrouping.None
},
Communication {
id: requestPost
onComplete: {
//gets the api call response here
var response = JSON.parse(info);
console.log(response);
if (response.hasOwnProperty('contacts'))
{
contactsData.clear();
//contactListView.dataModelChanged(contactsData);
var contacts = response["contacts"];
for (var cntNames in contacts)
{
contactsData.insert({
name: contacts[cntNames].toString(),
last: contactsData.size(),
colors: setBgColor(contactsData.size())
})
}
}
//This log prints data in correct order i.e 3 1 2 4 5 but the data displayed in list view prints in wrong order 3 1 3 4 5
for (var i=0;i<contactsData.size();i++)
{
console.log(contactsData.data([i]).name);
}
}
]
【问题讨论】:
-
您使用的是哪个数据模型?如果你有 GroupDataModel 检查排序键,因为这可能会改变顺序。
-
它的groupdatamodel,即使它改变了顺序,item如何重复?你能检查我上面粘贴的代码并告诉我我做错了什么吗?
-
您的代码毫无意义。你为什么要使用 last 呢?从 GroupDataModel 中删除它
-
我使用 last 按添加联系人的顺序排序,在我的应用程序中,这些是示例名称,我不想按字母顺序排列它们,但按照它们实际到达的顺序,也在最后是一个用于添加用户的 + 按钮,它将用户添加到底部而不是顶部。
标签: listview blackberry qml blackberry-10 blackberry-cascades