0

source:これは、デバイスの共有フォルダーにある xml ファイルからデータをロードするコード行です。

その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ファイルを正確にロードする方法を教えてください。

前もって感謝します。

4

2 に答える 2

1

これを行うには 2 つの部分があります。

アプリケーションが共有フォルダーを使用できるようにする最初のもの

手順:

  1. プロジェクトの bar-descriptor.xml に移動します
  2. アプリケーションを選択
  3. 共有ファイルで true をチェック

2 つ目は、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
    } 
于 2013-08-27T09:00:19.207 に答える