BlackBerry 10 Cascades:如何将数据加载到DropDown?

时间:2012-11-06 09:48:21

标签: qml blackberry-10 blackberry-cascades

我已经设法将数据从远程Json Web服务加载到QML ListView中,但DropDown控件似乎没有任何这样的东西。

有人有一个示例或替代方法来完成绑定到Cascades中的attachObjects数据源的DropDown吗?

1 个答案:

答案 0 :(得分:8)

我还有另一种方法,请注意我在此处使用Google的网络服务进行演示,您需要将其替换为您的网址&根据那个解析回应。

import bb.cascades 1.0

Page {
    attachedObjects: [
        ComponentDefinition {
            id: optionControlDefinition
            Option {
            }
        }
    ]
    function getData() {
        var request = new XMLHttpRequest()
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                var response = request.responseText
                response = JSON.parse(response)
                var addressComponents = response.results[0].address_components
                for (var i = 0; i < addressComponents.length; i ++) {
                    var option = optionControlDefinition.createObject();
                    option.text = addressComponents[i].long_name
                    dropDown.add(option)
                }
            }
        }

        // I have used goole's web service url, you can replace with your url
        request.open("GET", "http://maps.googleapis.com/maps/api/geocode/json?address=" + "Ahmedabad" + "&sensor=false", true)
        request.send()
    }
    Container {
        DropDown {
            id: dropDown
        }
        Button {
            onClicked: getData()
        }
    }
}

希望这有帮助。