2012-12-27 89 views
0

我在我的级联应用中使用ListView,我正在做大部分QML中的东西。这里是ListViewattachedObjects: [ ]黑莓级联中的ListView崩溃

attachedObjects: [ 
    FmnModel { 
     id: fmnModel 
    }, 
    FmnListModel { 
     id: asynkDataSource 
     source: "sql/fgmt.db" 
     query: "SELECT lists.id, lists.name, (SELECT COUNT(1) FROM tasks WHERE tasks.listid=lists.id AND tasks.status=\"Pending\") AS pendings FROM lists" 

     onDataLoaded: { 
      if(data.length > 0) { 
       fmnModel.insertList(data); 
      } 
     } 
    } 
] // Attached Objects 

和加载下一页到NavigationPane代码:

property variant taskpaged 
onTriggered: { 
    taskpaged = taskPageDefinition.createObject(); 
    navPane.push(taskpaged); 

    taskpaged.back.connect(navPane.pop); 
} 

所以,当我点击“返回”,在taskpaged页,应用程序崩溃。任何想法为什么?还是我需要提供更多的代码? (如果是,哪个?)

+0

什么是FmnModel或FmnListModel,它们不显示在API搜索中。 – Richard

+0

'FmnModel'是一个自定义的QML,基本上是一个'GroupDataModel','FmnListModel'是Quotes Cascades示例中'customdatasource'的稍微修改版本。 – Roshnal

回答

0

可能会抛出一些错误,但如果您从页面开始,然后推入另一页面,则无法看到它们。让您的应用程序指向(任务页)作为要加载的第一页。你会看到有很多例外。修复它们然后返回到原始代码

0

您需要在QML的顶层元素中为taskPageDefinition声明signal back()。然后,你还需要定义导航窗格属性页面,并指定与后退按钮被点击时发生的操作:

Page { 
    id: taskPage 
    signal back() 

    paneProperties: NavigationPaneProperties { 
    backButton: ActionItem { 
     onTriggered: { 
      // Send the back() signal, which you already connected to nav.pop() 
      taskPage.back(); 
     } 
    } 
    } 
} 

希望帮助。你也可以看看this question,我在那里发布了一个完整的导航窗格示例,但在那里我直接从后退按钮的onTriggered调用nav.pop()。这里你使用的是信号和插槽。