Inflating a view stub has two important properties:

1) It's irreversible: once inflated, the stub's content is always there
2) The stub's content replaces the stub.

Sounds like you need to replace the stub with <include> and toggle its contents' visibility as needed.

-- Kostya

05.11.2011 2:07, Abhi пишет:
I keep getting NullPointerException trying to deflate or make
invisible the ViewStub from my UI. I just wanted to be sure I am doing
it right.

I am inflating my ViewStub in onItemLongClick method of GalleryView by
doing the following:

@Override
             public boolean onItemLongClick(AdapterView<?>  arg0, View
viu, int arg2,
                     long arg3) {
                 Toast.makeText(GalleryView.this, "New item added to
Favorites", Toast.LENGTH_SHORT).show();


                 favsCount++;

                //checking to see if ViewStub is already inflated or
not
                 if(!stubvis){
                 stub = (ViewStub) findViewById(R.id.stub1);
                 stub.inflate();
                 stubvis = true;
                 trayUP = true;
                 }

                 return true;
             }

             });

and then in onPrepareOptionsMenu() I am adding the menu item based on
the visibility of ViewStub. If inflated and visible, I create a menu
item to hide it, otherwise, a menu item to show/make visible.

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

menu.clear();


if(trayUP) {

menu.add(0, HIDETRAY, 0, "Hide Favorites Tray");

} else {

menu.add(0, SHOWTRAY, 0, "Show Favorites Tray");

}

return super.onPrepareOptionsMenu(menu);

}
Next, in onOptionsItemSelected(), I am writing the two cases based on
the menu item selection. Case 1 when the tray is not visible, so I
make it visible. Case 2 when it is visible, so I hide it by doing the
following:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

     switch (item.getItemId()) {

         case HIDETRAY:

             Log.v(TAG, "Hiding Favs Tray");
             findViewById(R.id.stub1).setVisibility(View.GONE);
             trayUP = false;

         case SHOWTRAY:

             Log.v(TAG, "Showing Favs Tray");
             findViewById(R.id.stub1).setVisibility(View.VISIBLE);
             trayUP = true;

         }

     return true;
}

I know I am making a silly mistake somewhere. And my mind is too
saturated to think straight at the moment. Need help :(

Thanks,

Ab


--
Kostya Vasilyev

--
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