Listview 在blackberry cascades QML中编辑列表项
我已经成功创建了一个列表视图,它填充了一个json文件,现在我正在尝试编辑列表视图项。但我在做这件事时遇到了麻烦,我不断得到错误类型错误:表达式“curData”[undefined]的结果不是对象。下面是一个示例代码,我试图在创建页面后编辑listview 这是我加载列表视图的页面Listview 在blackberry cascades QML中编辑列表项,listview,blackberry,qml,blackberry-10,blackberry-cascades,Listview,Blackberry,Qml,Blackberry 10,Blackberry Cascades,我已经成功创建了一个列表视图,它填充了一个json文件,现在我正在尝试编辑列表视图项。但我在做这件事时遇到了麻烦,我不断得到错误类型错误:表达式“curData”[undefined]的结果不是对象。下面是一个示例代码,我试图在创建页面后编辑listview 这是我加载列表视图的页面 import bb.system 1.0 import bb.cascades 1.0 import bb.data 1.0 import Network.Communication 1.0 Page {
import bb.system 1.0
import bb.cascades 1.0
import bb.data 1.0
import Network.Communication 1.0
Page {
Container {
id: profilePage
layout: DockLayout {
}
ListView {
id: profileListView
dataModel: contactsData
listItemComponents: [
ListItemComponent {
id: myItem
type: "item"
CustomListItemProfilePage {
id: listCell
background: Color.create(ListItemData.color)
text: ListItemData.name
onClicked: {
console.log(listCell.text);
}
}
}
]
onTriggered: {
}
}
}
onCreationCompleted:
{
var curData = contactsData.data([0,0])
curData.name = curData.name + " : "+ _settings.getValueFor("loginUserName", "No login name");
contactsData.updateItem([0,0],curData)
console.log("on compleete LOADED:"+contactsData.data([0,0]).toString());
profileDataSource.load();
}
attachedObjects: [
GroupDataModel {
id: contactsData
sortingKeys: ["order"]
grouping: ItemGrouping.None
},
DataSource {
id: profileDataSource
source: "asset:///Model/ProfileDetails.json"
onDataLoaded: {
contactsData.clear();
contactsData.insertList(data);
}
onError: {
console.log("JSON Load Error: [" + errorType + "]: " + errorMessage);
}
}
]
}
这是我的示例json文件。我试图用登录后获得的实际名称替换文本名称,该名称存储在_settings.getValueFor(“loginUserName”,“无登录名称”)中
这是我的listview项的qml
import bb.cascades 1.0
import QtQuick 1.0
import "Model/floatConstants.js" as Item
Container {
property alias text: label.text
property TextStyleDefinition textColor:label.textStyle
signal clicked()
layout: DockLayout {
}
preferredHeight: Item.itemHeight
preferredWidth: 1000.0
Container {
background: Color.Transparent
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
Container {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
Label {
id: label
text: "demo"
textStyle {
base: textColor.style
}
}
gestureHandlers: [
TapHandler {
onTapped: {
clicked();
}
}
]
}
}
}
我刚接触黑莓,这是我的第一个黑莓项目。请让我知道这是否可行,或者是否有其他方法来实现这一点。看看这个:
var curData = contactsData.data([0,0])
此时contactsData还没有数据,您还没有加载它。第一个电话
profileDataSource.load();
不过,我不知道为什么要使用ListView来处理这类问题。在加载profileDataSource.load()之后,我试图设置curData,但它仍然显示相同的错误。你还建议用什么方法?
profileDataSource.load();