Kept Getting error on event Change, Picker

You must Login before you can answer or comment on any questions.

Hi I seem to have this problem on the picker for android:

genderPicker.addEventListener("change",function(e){
        arPost['gender'] = e.row.custom_item
    });
and it saids:
E/KrollEventManager(  436): (main) [4210,13843] Error invoking listener with id 1 on eventName 'change'
E/KrollEventManager(  436): java.lang.NullPointerException
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollProxy.createEventInvocation(KrollProxy.java:650)
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollProxy.fireSingleEvent(KrollProxy.java:662)
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollEventManager$KrollListener.invoke(KrollEventManager.java:143)
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollEventManager.dispatchEvent(KrollEventManager.java:273)
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollEventManager.dispatchEvent(KrollEventManager.java:240)
E/KrollEventManager(  436):     at org.appcelerator.kroll.KrollProxy.fireEvent(KrollProxy.java:635)
E/KrollEventManager(  436):     at org.appcelerator.titanium.proxy.TiViewProxy.fireEvent(TiViewProxy.java:591)
E/KrollEventManager(  436):     at ti.modules.titanium.ui.PickerProxy.fireSelectionChange(PickerProxy.java:709)
E/KrollEventManager(  436):     at ti.modules.titanium.ui.widget.picker.TiUINativePicker.fireSelectionChange(TiUINativePicker.java:199)
E/KrollEventManager(  436):     at ti.modules.titanium.ui.widget.picker.TiUINativePicker.onItemSelected(TiUINativePicker.java:153)
E/KrollEventManager(  436):     at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
E/KrollEventManager(  436):     at android.widget.AdapterView.access$200(AdapterView.java:42)
E/KrollEventManager(  436):     at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:830)
E/KrollEventManager(  436):     at android.os.Handler.handleCallback(Handler.java:587)
E/KrollEventManager(  436):     at android.os.Handler.dispatchMessage(Handler.java:92)
E/KrollEventManager(  436):     at android.os.Looper.loop(Looper.java:123)
E/KrollEventManager(  436):     at android.app.ActivityThread.main(ActivityThread.java:4627)
E/KrollEventManager(  436):     at java.lang.reflect.Method.invokeNative(Native Method)
E/KrollEventManager(  436):     at java.lang.reflect.Method.invoke(Method.java:521)
E/KrollEventManager(  436):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/KrollEventManager(  436):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/KrollEventManager(  436):     at dalvik.system.NativeStart.main(Native Method)

— asked 2 years ago by Peter Eman Abastillas
3 Comments
  • you are going to need to provide more code so we can help you out, please take a look at this link for brief suggestions on posting questions

    http://developer.appcelerator.com/question/ask

    — commented 2 years ago by Aaron Saunders

  • var ioGenderData = [
        {title:'',custom_item:''},
        {title:'Male',custom_item:'M'},
        {title:'Female',custom_item:'F'},
        {title:'Don\'t Care',custom_item:'D'},
        {title:'Unknown',custom_item:'E'}
    ]
     
    var genderPicker    = forms.selectOne(clsPicker,"msPlanPicker","selectOne",ioGenderData,false);
     
     
    // forms.selectOne is a library I made; Note I had other events
    // but only the picker is like this...
     
    var forms = {
        selectOne : function(option, idS, sClassName,pickaRow,nulifier ) {
            var select='';
     
            var arObj = {id:idS,className:sClassName};
            arObj = this.objExtend(option,arObj);
     
            select = Titanium.UI.createPicker(arObj);
     
            arMe = pickaRow;
            data = [];
            if(nulifier) {
                data[0]=Ti.UI.createPickerRow({title:'',custom_item:''});
                j=1;
            } else {
                j=0;
            }
            for(i=0;i<arMe.length;i++) {
                consoleEcho(arMe[i]);
                data[j]=Ti.UI.createPickerRow(arMe[i]);
                j++;
            }
            select.add(data);
            select.selectionIndicator = true;
            return select;
        },
    }

    — commented 2 years ago by Peter Eman Abastillas

  • PS:

    // this is on my style.js
     
    var clsPicker = {
        right:5,width:140, top:0
    }

    — commented 2 years ago by Peter Eman Abastillas

3 Answers

I have the same problem although my listener looks like this:

regionPicker.addEventListener('change', function() {
  Ti.API.log('DEBUG', 'region has changed !)');
});
I'm using the latest 1.8.0 build. I did not observed that behaviour with 1.7.x and the problem only appears on Android.

Sorry, I solve this problem a week ago...

The suspect is Titanium.UI.ScrollableView

Got it.

I was creating a window within a TabGroup and was closing the TabGroup before opening the window. I guess that mixed up the event listeners.

Your Answer

Think you can help? Login to answer this question!