Why does calling findViewById(android.R.id.content).getRootView() in onPause or onStop return NPE but not when I call it in onCreate?
            Asked
            
        
        
            Active
            
        
            Viewed 4,361 times
        
    2
            
            
         
    
    
        learner
        
- 11,490
- 26
- 97
- 169
- 
                    1My best guess- in onPause and onStop you're unattached from the window that is holding you. – Gabe Sechan Apr 26 '13 at 20:59
- 
                    Try this two links: http://stackoverflow.com/questions/4486034/get-root-view-from-current-activity http://stackoverflow.com/questions/7776768/android-what-is-android-r-id-content-used-for – Steve Benett Apr 26 '13 at 21:05
2 Answers
1
            
            
        Here is the code of android.view.View.getRootView():
public View getRootView() {
        if (mAttachInfo != null) {
            final View v = mAttachInfo.mRootView;
            if (v != null) {
                return v;
            }
        }
        View parent = this;
        while (parent.mParent != null && parent.mParent instanceof View) {
            parent = (View) parent.mParent;
        }
        return parent;
    }
it at least return the view itself.
After I tried logging findViewById(android.R.id.content), and findViewById(android.R.id.content).getRootView() in onStop, onPause, onCreate, onResume, it worked all fine. No NPE. 
could you put your Activity code?
 
    
    
        Gaston Flores
        
- 2,457
- 3
- 23
- 42
 
    
    
        tjPark
        
- 308
- 1
- 11
0
            
            
        I wasn't able to reproduce this error on Android 4.2.2. You might be getting that NullPointerException from something else.
By the way, findViewById(android.R.id.content) returns the rootview so getRootView() is usually ineffective.
 
    
    
        Nimooli
        
- 89
- 6