android 调用其他activity方法,如何从另一个类调用MainActivity中的方法?

在Android中,从非Activity类调用MainActivity的方法通常需要通过实例化MainActivity或使用静态方法。一种方法是创建MainActivity的静态实例,另一种是创建一个Util类并传递上下文。确保在调用方法前正确初始化MainActivity的实例,以避免NullPointerException。
摘要由CSDN通过智能技术生成

您只需执行以下操作即可轻松地从Activity中的任何Fragment调用方法:

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

希望这可以帮助!

首先初始化它

MainActivity mActivity= new MainActivity();

然后你可以继续

mActivity.startChronometer();

我建议,不应该成为Activity类的对象。

MainActivity mActivity = new MainActivity(); // BIG NO TO THIS.

Android中的所有活动都必须通过活动生命周期,以便它们附加有效的上下文。

通过将Activity视为普通Java类,您最终会得到一个空上下文。 由于Activity中的大多数方法都在其Context上调用,因此您将获得空指针exception,这就是您的应用程序崩溃的原因。

相反,将需要从其他类调用的所有此类方法移动到Utility类中,该类在其构造函数中接受有效上下文,然后在方法中使用该上下文来完成工作。

MainActivity.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 sta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值