为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在其他类中创建一个活动的对象吗?

我可以在其他类中创建一个活动的对象吗?

墨色风雨 2019-07-04 17:46:19
我可以在其他类中创建一个活动的对象吗?我已经在mainActivity中定义了一个函数,现在我想用我应用程序中的另一个类访问它。我已经使用我调用的函数创建了一个主体活动的对象。它没有显示任何错误,但它不是每次我尝试执行应用程序崩溃时都会执行。任何解决方案
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

活动A应该有一个变量

static ActivityA activityA;

在永续状态:

activityA = this;

并添加此方法:

public static ActivityA getInstance(){
   return   activityA;
 }

在活动B中,呼叫

ActivityA.getInstance().myFunction(); //call myFunction using activityA


查看完整回答
反对 回复 2019-07-04
?
慕的地10843

TA贡献1785条经验 获得超8个赞

不能仅通过以下方法创建活动对象:

MyActivity activity = new MyActivity();

就像您对普通Java类所做的那样。Android中的所有活动都必须经过活动生命周期,以便它们有一个有效的上下文附加到它们。

通过将一个活动作为一个普通的Java类来处理,您将得到一个空上下文。由于活动中的大多数方法都是在其上下文中调用的,您将得到一个空指针异常,这就是应用程序崩溃的原因。

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


查看完整回答
反对 回复 2019-07-04
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

使变量公开,然后在适配器中创建对象,如下所示:

public int i;  // Variable in Activity class((ActivityName) context).i          // accessing in adapter


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 463 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信