Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

Picker change event not firing on first select,after adding json data to picker?

$
0
0

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);
 
}

Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>