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

Posted

技术标签:

【中文标题】如何在 Blackberry 10 级联中为 ListView 加载 GroupDataModel 中的源数据?【英文标题】:How to load source data in GroupDataModel for ListView in Blackberry 10 cascade? 【发布时间】:2013-08-26 08:50:13 【问题描述】:

这是我想从位于我的设备共享文件夹中的 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 文件。

提前致谢。

【问题讨论】:

【参考方案1】:

我们有两个部分可以做到这一点:

第一个允许您的应用程序使用共享文件夹

步骤:

    转到项目中的 bar-descriptor.xml 选择应用程序 在共享文件中检查 true

第二个是使用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
     

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于如何在 Blackberry 10 级联中为 ListView 加载 GroupDataModel 中的源数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从黑莓10级联中的复选框选定项目中获取值..?

如何在 bb 级联中使用带有 QNetWorkRequest 的身份验证详细信息?

如何从 bb 10 级联中的 listview 按钮单击事件导航到另一个页面?

如何在级联中设置 UIPickerView

防止黑莓10级联中listview标题上的onTriggered事件?

如何通过级联QML在blackberry 10设备文档目录中创建XML文件?