如何在Blackberry 10级联中为ListView加载GroupDataModel中的源数据?

时间:2013-08-26 08:50:13

标签: xml listview blackberry-10 blackberry-cascades datamodel

这是我的代码行,我想从xml文件中加载source:数据,该文件位于我的设备共享文件夹中。

该xml文件的路径为QFile textfile("/accounts/1000/shared/documents/myData.xml");

我的代码是:

import bb.cascades 1.0
import bb.data 1.0
Page {
content: ListView {
id: listView
dataModel: dataModel
    ...
}
attachedObjects: [
    GroupDataModel {
    id: dataModel
    },
        DataSource {
      id: dataSource


     //---------------------------------------
     //Here I want to load xml file
     //---------------------------------------
      source: "/accounts/1000/shared/documents/myData.xml"
    //---------------------------------------


      query: "/contacts/contact"
      onDataLoaded: {
        dataModel.insertList(data);
      }
    }
  ]
  onCreationCompleted: { dataSource.load(); }
}

任何人都请帮助我,如何在GroupDataModel中加载xml文件,该文件位于上面的设备目录位置。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我们有两个部分要做:

首先允许您的应用程序使用共享文件夹

步骤:

  1. 转到项目中的bar-descriptor.xml
  2. 选择应用程序
  3. 在共享文件中检查为true
  4. 第二个是使用C ++获取正确的路径并将其发送到上下文属性

    中的Qml

    这在您的ApllicationUI.cpp中  C ++代码

    // Build the path, add it as a context property, and expose
    // it to QML
    QString workingDir = QDir::currentPath();
    QString path = "file://" + workingDir +"/shared/documents/model.xml";
    QDeclarativePropertyMap* dirPaths = new QDeclarativePropertyMap;
    dirPaths->insert("documents", QVariant(QString(path)));
    qml->setContextProperty("dirPaths", dirPaths);
    

    QML

        dataModel: XmlDataModel {
                source: dirPaths.documents
        } 
    

答案 1 :(得分:1)

Snapshot to explore bar-descriptor.xml

此快照描述了如何访问权限 - >共享文件