Search code examples
androidandroid-resources

Button variable turns to null after calling method


In my mainactivity I have the following snip

MainActivity.class

private Button btnx10;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Button btnx10=(Button)findViewById(R.id.MainCOPbtn);
    DrawLines();
}


private void drawLines(){
   float centerYOnImage1=btnx10.getHeight()/2;
}

I'm trying to access the button that is created in the onCreate() method from the method drawLines()
i.e. in the same class MainActivity.class but outside of this method.

When I am trying to access the button in the drawlines()method it's value is null.

How can I access the button?


Solution

  • Since you have declared the Button in Scope of Method onCreate()

    Button btnx10=(Button)findViewById(R.id.MainCOPbtn);
    

    and you are trying to access it outside of the method onCreate(), that makes it inaccessible outside of this method.

    Just make the reference on class level (Globally) and use the same Reference in onCreate() method.

    you can do this:-

    private Button btnx10;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        btnx10 = (Button)findViewById(R.id.MainCOPbtn);
        DrawLines();
    }
    
    
    private void drawLines(){
       float centerYOnImage1 = btnx10.getHeight()/2;
    }