How to call method in main activity from other activity?

前端 未结 5 1933
清歌不尽
清歌不尽 2020-12-20 07:25

I want to call public method in main activity from other activity. How can I do that?

class MainActivity extends Activity {
    public void myMethod() {}
}

         


        
5条回答
  •  清酒与你
    2020-12-20 08:05

    Make it static, pass in the activity, instantiate, or better yet rethink design approach? I don't think you should be calling a method in another activity from your main activity - might be better to make a new class?

    Static Code:

    class MainActivity extends Activity 
    {
        public void myMethod() 
        {
            MyActivity.runMyMethod();
        }
    }
    
    
    class MyActivity extends Activity 
    {
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
        }
    
        public static void runMyMethod() 
        {
            //Run code...
        }
    }
    

    Instantiate Activity:

    class MainActivity extends Activity 
    {
        public void myMethod() 
        {
            MyActivity myActivity = new MyActivity();
            myActivity.runMyMethod();
        }
    }
    
    class MyActivity extends Activity 
    {
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
        }
    
        public void runMyMethod() 
        {
            //Run code...
        }
    }
    

    Pass Activity Reference:

    class MainActivity extends Activity
    {
        public void onCreate(Bundle savedInstanceState)
        {
                OtherActivity otherActivity = new OtherActivity(this);
        }
    
        public void yourMethod()
        {
        }
    
    }
    
    class OtherActivity extends Activity
    {
        MainActivity mainRefrence;
        OtherActivity(MainActivity main)
        {
            mainRefrence = main;
        }
    
        public void onCreate()
        {
            mainRefrence.yourMethod();
        }
    }
    

提交回复
热议问题