After a long and arduous journey of getting a navigation drawer set up for the redesign of my ChemPal app, I finally completed a wonderful and beautiful hamburger menu that I was greatly happy with.
Because of how I have my app divided up—a main app file (the main activity) and a library full of all the functions and other
Activity classes—I decided it was important to move all the navigation-drawer-related code (of which there is a fair amount) to a helper class called
This worked marvelously at first. It was all in another class, away and free from infecting my main activity file. Until I turned on the orientation changer. And every time I changed it, it would go blank. Worse yet, when I did so, the button to open and close it stopped functioning also.
I did what any debugger would do and inserted a bajillion print statements into my functions (such as
getCount() of the adapter) to see what was going wrong. Somehow,
getCount() was returning a value greater than 0, but
getView() was never called.
After two hours (maybe more, I get delusional after a while) of random debugging attempts, I realized that on recreate, Android actually creates a NEW activity—it doesn't call
recreate() on the old one. Thus, in the helper class, it was still setting everything for the original
Hurr, durr, durr. The moral of the story is: If you're using helper methods, make sure they're using updated data. This has been a public service announcement from Frustrated Java Programmers, Incorporated.