Search code examples
javaandroidandroid-activity

Can't call MainActivity methods from its class


I looked everywhere and couldn't find what's wrong with my code, I am simply trying to call a MainActivity method from its own class:

MainActivity.java:

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    TestiClass testi = new TestiClass(this,this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void testi_method(){

    }

}

TestiClass.java:

import android.app.Activity;
import android.content.Context;

public class TestiClass {

    private Activity mActivity;
    private Context mContext;

    TestiClass(Activity activity ,Context context){
        this.mActivity = activity;
        this.mContext = context;
    }

    void test(){
        mActivity.testi_method(); //????
    }

}

mActivity.testi_method() says - cannot resolve method... Any Thoughts?


Solution

  • If this must be your implementation then it is an easy fix:

    private final MainActivity mainActivity;
    private final Context context;
    
    TestiClass(MainActivity mainActivity, Context context){
        this.mainActivity = mainActivity;
        this.context = context;
    }