如何从另一个类调用MainActivity中的方法?

2022-09-02 02:07:31

当在另一个类中声明该方法时,如何在主活动中调用该方法?startChronometer

里面:MainActivity

public void startChronometer() {
    mChronometer.start();
    showElapsedTime();
}

在另一个类中,我试图这样做:

MainActivity mActivity;
mActivity.startChronometer();

但是发生了一个错误,上面写着:

java.lang.NullPointerException. 

我可以知道我还需要在代码中添加什么吗?


答案 1

您可以通过执行如下操作,轻松地从活动中的任何片段调用方法:

爪哇岛

((MainActivity)getActivity()).startChronometer();

科特林

(activity as MainActivity).startChronometer()

只要记住,在你这样做之前,要确保这个片段的活动实际上是MainActivity。

希望这有帮助!


答案 2

主要活动.java

public class MainActivity extends AppCompatActivity {

    private static MainActivity instance;

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

    public static MainActivity getInstance() {
        return instance;
    }

    public void myMethod() {
       // do something...
    }
)

另一类.java

public Class AnotherClass() {
     // call this method
     MainActivity.getInstance().myMethod();
}

推荐