Thanks that fixed it!

I created override of OnCreate in my application class and declared a
new ArrayList. The only thing then puzzles me is why I had to do it??
I thought that it would automatically be filled with the object I
created in my init function that is inside of the initial Activity
class. I was thinking along the lines that this is like a pointer
variable and then I set it with passing a pointer to my object. I
guess it doesn't work that way :D

Thanks again!!

On Apr 14, 2:47 pm, Chris <[email protected]> wrote:
> You never instantiate mGroups in your Application class so unless you
> SET it before GETing it, it's going to be null.
>
> Chris
>
> On Apr 14, 8:31 am, Duskox <[email protected]> wrote:
>
>
>
>
>
>
>
> > Hi all,
>
> > so I searched the net and found a nice way to make a global variable
> > by creating a class that extends Application class. I did that. But I
> > am having problems with it. So this is the situation:
>
> > public class Group {
> >  public String mName;
> >  public int mID;
> >  public ArrayList<Items> mItems;
>
> > }
>
> > public class Item {
> >  public String mName;
>
> > }
>
> > public class MyApplicationApp extends Application {
> >  private ArrayList<Group> mGroups;
>
> > public ArrayList<Group> getGlobalArrayVariable() {
> >                 return mGroups;
> >         }
>
> >         public synchronized void setGlobalArrayVariable(ArrayList<Group> s) 
> > {
> >                 mGroups = s;
> >         }
>
> > }
>
> > So these are the classes I believe are cruical for this question. Next
> > this is that in my Activity classes I set and get this ArrayList
> > variable. So I set it in my initial Activity class that is called when
> > the application is run. There I fill the array and just to be sure I
> > read it with Log functionality after filling the array in the
> > MyApplicationApp class and everything is ok.
>
> > Then I try to read this from another Activity class where I go to
> > after a menu choice. In that activity I successfully read the
> > application, meaning I get a handle to MyApplicationApp object (I
> > guess). This is how I do it:
>
> > ...
> > private MyApplicationApp mMyApp;
> > private ArrayList<Group> mGroupsList;
>
> > protected void onCreate(Bundle savedInstanceState) {
> >                 super.onCreate(savedInstanceState);
>
> >                 mMyApp = (MyApplicationApp)this.getApplication();
> >                 if (mMyApp == null) Log.i(TAG,"mMyApp == null");
>
> >                 mGroupsList = 
> > (ArrayList<Group>)mMyApp.getGlobalArrayVariable();
> >                 if (mGroupsList == null) Log.i(TAG,"1. mGroupsList == 
> > null");
>
> >                 mGroupsList =
> > ((MyApplicationApp)this.getApplication()).getGlobalArrayVariable();
> >                 if (mGroupsList == null) Log.i(TAG,"2. mGroupsList == 
> > null");
> > ...
>
> > So mMyApp is not null and that is fine I guess, but mGroupsList is
> > null and I presume that is way my app crashes after this last log
> > entry. I guess it crashes because my variable is null?? Anyway even if
> > the reason for crashing is other then this variable being null I am
> > still puzzled why am I not able to get my global variable in this
> > way??
>
> > The reason for two different ways of getting something into
> > mGroupsList variable is because I was trying to see if I am doing it
> > incorrectly but it is the same as far as I know...
>
> > Any ideas or pointers what should I do?
>
> > Thanks!
> > D.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to