Tanner Ewing
Tanner Ewing

Reputation: 337

Cannot access a property or method of a null object reference Flex

I've been trying to learn flex/flash programming and am working on a project where I need to populate a spinner list in flex dynamically from a string. I have a function that separates the string using "split" and now I need to populate an array list. I have been working with this stupid big for hours now and can;t find help anywhere. I keep getting the following error:

TypeError: Error #1009: Cannot access a property or method of a null object reference. at views::CommonPlaces/initApp()[/Users/twing207/Documents/Adobe Flash Builder 4.6/AmericanTaxi/src/views/CommonPlaces.mxml:30]

My code is here:

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayList;
        import spark.events.IndexChangeEvent;

        var Arr1:Array;
        var Arr2:Array;
        var Arr3:Array;

        [Bindable]
        public var CommonPlacesArray:ArrayList;

        var CommonPlacesData:String = new String("2133664:American Taxi Dispatch, Inc:Mount Prospect:834 E RAND RD|2133665:Walmart:Mount Prospect:930 Mount Prospect Plaza|2228885:Garage:Des Plaines:1141 Lee St|2228886:Asian Island:Palatine:1202 E Dundee Rd|2229464:Kohl's:Arlington Heights:700-856 W Dundee Rd|");
        var CurrentSelect:String = new String();

        private function initApp():void {

            Arr1 = CommonPlacesData.split("|");
            var arrLength:Number = new Number(Arr1.length);

            for (var i:Number = 0; i < (arrLength - 1); i++) {
                CurrentSelect = new String(Arr1[i]);
                Arr2 = CurrentSelect.split(":");

      //THE LINE BELOW IS WHERE IT STOPS:
                CommonPlacesArray.addItem(Arr2[1]);
            }

        }

It doesn't seem to like the "CommonPlacesArray.addItem" line. Any help or a point in the right direction would be great. Thanks in advanced!

On another note, I am also getting the error: "Access of undefined property: data" on the following:

Here in another view I set the value for data.UserCommonReturnData to a string.

function LoginLoaded (e:Event):void {
                        trace(e.target.data);
                        var ServerReturn:String;
                        ServerReturn = new String(e.target.data);
                        data.UserCommonReturnData = ServerReturn;
                        navigator.pushView(CommonPlaces, data);
                    }

and here I try to pull it back:

var CommonPlacesData:String = new String();
            var CurrentSelect:String = new String();

//The next line gives the error: CommonPlacesData = data.UserCommonReturnData;

Any idea??

Upvotes: 0

Views: 983

Answers (1)

Benjamin Gruenbaum
Benjamin Gruenbaum

Reputation: 276266

You never construct CommonPlacesArray, you just declare it.

var CommonPlacesArray:ArrayList = new ArrayList();

If you check the Array List API you can also clearly see it has a constructor that accepts an array, meaning you can copy the data to it without having to iterate over it yourself.

Upvotes: 2

Related Questions