Actually I need drop-down list in my app for this I have using titanium picker. Here I have added json data to the picker. When I am selecting any item first time from picker, picker change listener is not calling. second time onwards picker change is calling.
How to call picker change listener while first time selection ?
how to solve this issue?
Here is my code:
index.xml
<Alloy> <Window class="container"> <Button title="Go" onClick="goBtn"></Button> </Window> </Alloy>index.js
function goBtn() { Ti.API.info('Go button pressed'); //After press Go button ,trying to open another window. var mView = Alloy.createController('mView').getView(); mView.open(); } $.index.open();mView.xml
<Alloy> <Window class="container" id="mHomeView" > <View class="viewContainer" id='mViews'> <Label id="textLabel" /> <Picker id="dataPicker" type="Titanium.UI.PICKER_TYPE_PLAIN"> </Picker> </View> </Window> </Alloy>
mView.js
//getting the Blackberry Data using json webservices function getBlackberryData(callback) { var jsonURL = "http://docs.blackberry.com/sampledata.json"; var xhr = Ti.Network.createHTTPClient({ onload : function() { Ti.API.info('reponse text is ' + this.responseText); blackberryData = JSON.parse(this.responseText); Ti.API.info('blackberryData data is ' + blackberryData); Ti.API.info('blackberryData length is ' + blackberryData.length); callback(blackberryData); }, onerror : function(e) { Ti.API.info("STATUS: " + this.status); Ti.API.info("ERROR: " + e.error); }, }); xhr.open("GET", jsonURL); xhr.send(); } getBlackberryData(getPickerWin); function getPickerWin(blackberryInfo) { Ti.API.info('blackberryInfo in picker window ' + blackberryInfo); Ti.API.info('blackberryInfo length in picker window ' + blackberryInfo.length); var data = []; for ( i = 0; i < blackberryInfo.length; i++) { var institutionData = blackberryInfo[i]; data[i] = Ti.UI.createPickerRow({ title : institutionData.vehicleType, custom_item : institutionData.vehicleColor, }); } data[blackberryInfo.length] = Titanium.UI.createPickerRow({ title : 'Others', custom_item : 'Others', }); $.dataPicker.add(data); $.dataPicker.selectionIndicator = true; $.dataPicker.addEventListener('change', function(e) { // This Change listener is not calling at first time Ti.API.info('picker change listener is called '); }); $.dataPicker.setSelectedRow(0, 0, false); }